
int whereLoopAddBtree(WhereLoopBuilder *pBuilder,Bitmask mPrereq)

{
  ushort uVar1;
  ushort uVar2;
  bool bVar3;
  undefined *puVar4;
  int *piVar5;
  Table *pTVar6;
  Index *pIVar7;
  WhereOrSet *pWVar8;
  code *pcVar9;
  int iVar10;
  byte bVar22;
  u8 uVar23;
  Expr *pEVar11;
  char cVar24;
  code *pcVar12;
  LogEst LVar20;
  short sVar21;
  int *piVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  WhereTerm *pWVar18;
  ushort *puVar19;
  WhereClause *pWVar25;
  byte bVar29;
  ExprList *pEVar26;
  code *pcVar27;
  WhereTerm *pWVar28;
  short sVar33;
  short *psVar30;
  short *psVar31;
  WhereTerm **ppWVar32;
  uint uVar34;
  WhereOrInfo *pWVar35;
  Index *in_a2;
  Index *pIVar36;
  WhereInfo *in_a3;
  WhereInfo *pWVar37;
  Index *pIVar38;
  ExprList_item *pEVar39;
  WhereTerm *pWVar40;
  ushort *puVar41;
  int iVar42;
  SrcList_item *pSrc;
  uint *puVar43;
  WhereInfo *pWVar44;
  WhereInfo *pWVar45;
  uint uVar46;
  int iVar47;
  WhereInfo *pWVar48;
  WhereInfo *pWVar49;
  uint *puVar50;
  LogEst *pLVar51;
  WhereTerm *pWVar52;
  WhereInfo *unaff_s5;
  Table *unaff_s6;
  int iVar53;
  undefined *puVar54;
  undefined *puVar55;
  Index *pProbe;
  undefined1 *in_stack_fffffc30;
  undefined4 in_stack_fffffc34;
  undefined4 in_stack_fffffc3c;
  WhereLoopBuilder WStack_364;
  uint uStack_348;
  undefined4 uStack_344;
  undefined4 uStack_340;
  undefined4 uStack_33c;
  undefined4 uStack_338;
  undefined4 uStack_334;
  undefined4 uStack_330;
  undefined4 uStack_32c;
  undefined4 uStack_328;
  undefined4 uStack_324;
  undefined4 uStack_320;
  undefined4 uStack_31c;
  undefined4 uStack_318;
  undefined4 uStack_314;
  WhereOrSet WStack_310;
  ushort auStack_2d8 [4];
  uint auStack_2d0 [2];
  ushort auStack_2c8 [20];
  WhereInfo *pWStack_2a0;
  WhereClause *pWStack_29c;
  u8 uStack_298;
  int iStack_294;
  WhereTerm *pWStack_28c;
  int iStack_104;
  Index *pIStack_100;
  SrcList_item *pSStack_fc;
  WhereInfo *pWStack_f8;
  WhereInfo *pWStack_f4;
  WhereLoopBuilder *pWStack_f0;
  WhereInfo *pWStack_ec;
  Table *pTStack_e8;
  Index *pIStack_e4;
  Index *pIStack_e0;
  code *pcStack_dc;
  Index *pIStack_d0;
  WhereInfo *pWStack_cc;
  undefined4 uStack_c4;
  short sStack_b2;
  i16 aiColumnPk;
  Index sPk;
  LogEst aiRowEstPk [2];
  
  puVar55 = PTR___stack_chk_guard_0015ba2c;
  pIVar38 = (Index *)pBuilder->pNew;
  pWVar25 = pBuilder->pWC;
  pWVar44 = pBuilder->pWInfo;
  piVar5 = *(int **)PTR___stack_chk_guard_0015ba2c;
  aiColumnPk = -1;
  pSrc = (SrcList_item *)
         ((int)((WhereClause *)pWVar44->pTabList)->aStatic +
         (uint)*(byte *)&pIVar38->zColAff * 0x48 + -0x10);
  pTVar6 = pSrc->pTab;
  pProbe = pSrc->pIBIndex;
  pIVar36 = in_a2;
  pWVar37 = in_a3;
  if (pProbe == (Index *)0x0) {
    if ((pTVar6->tabFlags & 0x20) == 0) {
      pProbe = &sPk;
      pIVar36 = (Index *)0x48;
      (*(code *)PTR_memset_0015b9b4)(pProbe,0);
      sPk.nKeyCol = 1;
      sPk.nColumn = 1;
      sPk.pTable = pTVar6;
      sPk.onError = '\x05';
      aiRowEstPk[1] = 0;
      sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0;
      sPk.szIdxRow = pTVar6->szTabRow;
      sPk.aiColumn = &aiColumnPk;
      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;
      sPk.aiRowLogEst = aiRowEstPk;
      aiRowEstPk[0] = pTVar6->nRowLogEst;
      if (-1 < (char)(pSrc->fg).field_0x1) {
        sPk.pNext = pSrc->pTab->pIndex;
      }
    }
    else {
      pProbe = pTVar6->pIndex;
      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;
    }
  }
  else {
    pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;
  }
  if ((int)pWVar48 < 0xb) {
    pWVar8 = pBuilder->pOrSet;
    pIVar7 = (Index *)0x0;
  }
  else {
    pIVar7 = (Index *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48);
    pWVar8 = pBuilder->pOrSet;
  }
  if ((((((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&
        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&
       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))) &&
      ((pTVar6->tabFlags & 0x20) == 0)) && (((uint)pSrc->fg & 0x140000) == 0)) {
    sStack_b2 = (short)pIVar7 + (short)pWVar48;
    pWVar49 = (WhereInfo *)pWVar25->a;
    pcVar12 = (code *)(PTR_LAB_0015b6c0 + -0x5530);
    pcVar27 = (code *)(PTR_LAB_0015b6d8 + 0x358);
    pWVar45 = (WhereInfo *)(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6);
    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);
    unaff_s5 = pWVar49;
LAB_00080e28:
    pWVar48 = pWVar49;
    pWVar49 = unaff_s5;
    unaff_s6 = pTVar6;
    if (unaff_s5 < pWVar45) {
      do {
        pIVar36 = (Index *)pIVar38->aiRowLogEst;
        pWVar48 = (WhereInfo *)&pWVar49->sorted;
        unaff_s5 = pWVar48;
        if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&
            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {
          pWVar37 = (WhereInfo *)0x0;
          pIVar36 = (Index *)0x0;
          iVar10 = (*pcVar12)(pWVar49,pSrc);
          if (iVar10 != 0) goto code_r0x00080e78;
        }
        pWVar49 = pWVar48;
        if (pWVar45 <= pWVar48) break;
      } while( true );
    }
  }
  puVar4 = PTR_LAB_0015b6d8;
  puVar54 = PTR_LAB_0015b6c0;
  cVar24 = '\0';
  pWVar45 = pWVar44;
  pWVar49 = pWVar48;
  if (pProbe != (Index *)0x0) {
    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);
    pWVar48 = unaff_s5;
LAB_0008081c:
    pIVar36 = (Index *)pProbe->pPartIdxWhere;
    if (((pIVar36 == (Index *)0x0) ||
        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)) &&
       (-1 < (char)pProbe->field_0x38)) {
      sVar21 = *pProbe->aiRowLogEst;
      pWVar49 = (WhereInfo *)(int)sVar21;
      (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum = 0;
      *(undefined2 *)&pIVar38->aSortOrder = 0;
      pIVar38->zName = (char *)in_a2;
      pIVar38->aColExpr = (ExprList *)0x0;
      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';
      *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;
      *(short *)((int)&pIVar38->pNext + 2) = sVar21;
      pIVar38->azColl = &pProbe->zName;
      pIVar38->aiColumn = (i16 *)in_a3;
      bVar22 = pProbe->field_0x37;
      bVar29 = bVar22 & 0x20;
      if ((bVar22 & 0x20) == 0) {
        pEVar26 = pBuilder->pWInfo->pOrderBy;
        if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {
          unaff_s6 = (Table *)pSrc->iCursor;
          pEVar39 = pEVar26->a;
          iVar10 = 0;
LAB_000808d4:
          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;
              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {
            while( true ) {
              if (((uint)pWVar48->pTabList & 0x1000) == 0) {
                pIVar7 = pProbe;
                if ((*(char *)&pWVar48->pParse != -0x62) ||
                   (unaff_s6 !=
                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->
                             leftColumn)) {
                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {
                    iVar10 = FUN_00080ad0();
                    return iVar10;
                  }
                  goto LAB_00080938;
                }
                iVar14 = pWVar48->iContinue;
                if (iVar14 < 0) goto LAB_00080b70;
                if (pProbe->nKeyCol == 0) goto LAB_00080938;
                psVar30 = pProbe->aiColumn;
                if (iVar14 == *psVar30) goto LAB_00080b70;
                psVar31 = psVar30 + pProbe->nKeyCol;
                goto LAB_00080b5c;
              }
              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;
              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);
              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;
            }
          }
LAB_0008090c:
                    /* WARNING: Does not return */
          pcVar9 = (code *)trap(0);
          (*pcVar9)();
        }
        goto LAB_0008095c;
      }
      if ((bVar22 & 0xc0) == 0xc0) {
        bVar29 = 0;
        pIVar38->pPartIdxWhere = (Expr *)0x100;
        goto LAB_00080c28;
      }
      goto LAB_0008096c;
    }
    unaff_s5 = pWVar48;
    if (pSrc->pIBIndex == (Index *)0x0) {
      pProbe = pProbe->pNext;
      goto LAB_00080bf4;
    }
  }
  pWVar48 = unaff_s5;
  iVar10 = 0;
LAB_00080a6c:
  if (piVar5 == *(int **)puVar55) {
    return iVar10;
  }
  pcVar9 = whereLoopAddOr;
  puVar54 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  puVar55 = puVar54 + 0xe2508;
  piVar13 = *(int **)(puVar54 + 0xda984);
  pTStack_e8 = unaff_s6;
  pIStack_e0 = pProbe;
  pWStack_f0 = pBuilder;
  pcStack_dc = pcVar9;
  pIStack_e4 = pIVar7;
  pWStack_ec = pWVar48;
  pWStack_f4 = pWVar49;
  pWStack_f8 = pWVar45;
  pSStack_fc = pSrc;
  pIStack_100 = pIVar38;
  pWVar25 = (WhereClause *)piVar5[1];
  puVar50 = (uint *)piVar5[3];
  uStack_348 = 0;
  uStack_344 = 0;
  uStack_340 = 0;
  uStack_33c = 0;
  uStack_338 = 0;
  uStack_334 = 0;
  uStack_330 = 0;
  pWVar52 = pWVar25->a + pWVar25->nTerm;
  uStack_32c = 0;
  uStack_328 = 0;
  uStack_324 = 0;
  uStack_320 = 0;
  uStack_31c = 0;
  uStack_318 = 0;
  uStack_314 = 0;
  pWVar28 = pWVar25->a;
  iStack_104 = *piVar13;
  pWStack_cc = pWVar37;
  pIStack_d0 = pIVar36;
  iVar10 = *(int *)(*piVar5 + 4) + 8 + (uint)*(byte *)(puVar50 + 4) * 0x48;
  iVar14 = *(int *)(iVar10 + 0x28);
  if (pWVar28 < pWVar52) {
    iVar15 = *(int *)(puVar54 + 0xda5b4);
    iVar16 = *(int *)(puVar54 + 0xda630);
    iVar17 = *(int *)(puVar54 + 0xda66c);
    puVar54 = puVar55;
    do {
      while (((pWVar28->eOperator & 0x200) == 0 ||
             (pWVar35 = (pWVar28->u).pOrInfo,
             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&
             ((uint)pWVar35->indexable & puVar50[3]) == 0))) {
        pWVar28 = pWVar28 + 1;
        if (pWVar52 <= pWVar28) goto LAB_00081208;
      }
      WStack_364.pWInfo = (WhereInfo *)*piVar5;
      WStack_364.pWC = *(WhereClause **)(piVar5 + 1);
      WStack_364.pNew = (WhereLoop *)piVar5[3];
      WStack_364.bldFlags = piVar5[5];
      WStack_364.iPlanLimit = piVar5[6];
      pWVar18 = (pWVar35->wc).a + (pWVar35->wc).nTerm;
      WStack_364.pOrderBy = (ExprList *)0x0;
      pWVar40 = (pWVar35->wc).a;
      WStack_364.pOrSet = &WStack_310;
      if (pWVar40 < pWVar18) {
        iVar53 = 0;
        bVar3 = true;
        do {
          if ((pWVar40->eOperator & 0x400) == 0) {
            if (pWVar40->leftCursor == iVar14) {
              pWStack_2a0 = pWVar25->pWInfo;
              uStack_298 = ',';
              iStack_294 = 1;
              WStack_364.pWC = (WhereClause *)&pWStack_2a0;
              pWStack_29c = pWVar25;
              pWStack_28c = pWVar40;
              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;
LAB_000813ec:
              WStack_310.n = 0;
              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));
              puVar55 = puVar54;
              goto joined_r0x00081334;
            }
          }
          else {
            WStack_364.pWC = *(WhereClause **)&pWVar40->u;
            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;
LAB_00081310:
            WStack_310.n = 0;
            in_stack_fffffc30 = &_gp;
            in_stack_fffffc34 = uStack_c4;
            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),
                                         CONCAT44(puVar54,in_stack_fffffc3c));
            puVar55 = puVar54;
joined_r0x00081334:
            if (iVar53 == 0) {
              in_stack_fffffc30 = &_gp;
              in_stack_fffffc34 = uStack_c4;
              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);
            }
            uVar34 = (uint)WStack_310.n;
            if (uVar34 == 0) {
              uStack_348 = uStack_348 & 0xffff;
              puVar54 = puVar55;
              break;
            }
            if (bVar3) {
              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);
              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);
              bVar3 = false;
              puVar54 = puVar55;
            }
            else {
              uVar46 = (uint)uStack_348._0_2_;
              auStack_2d8[0] = uStack_348._0_2_;
              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);
              uStack_348 = uStack_348 & 0xffff;
              puVar54 = puVar55;
              if (uVar46 != 0) {
                puVar41 = auStack_2d8;
                puVar19 = puVar41 + uVar46 * 8;
                do {
                  if (uVar34 != 0) {
                    uVar46 = *(uint *)(puVar41 + 4);
                    iVar42 = 0;
                    uVar34 = *(uint *)(puVar41 + 6);
                    uVar1 = puVar41[8];
                    uVar2 = puVar41[9];
                    pWVar8 = &WStack_310;
                    puVar55 = puVar54;
                    do {
                      pLVar51 = &pWVar8->a[0].rRun;
                      iVar42 = iVar42 + 1;
                      pcVar9 = (code *)(iVar16 + 0x358);
                      in_stack_fffffc30 =
                           (undefined1 *)
                           (*(code *)(iVar16 + 0x358))
                                     ((int)(short)uVar1,(int)*pLVar51,
                                      *(uint *)&pWVar8->a[0].prereq | uVar46,
                                      (uint)pWVar8->a[0].prereq | uVar34);
                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);
                      (*(code *)(iVar15 + -0x58))(&uStack_348);
                      pWVar8 = (WhereOrSet *)pLVar51;
                      puVar54 = puVar55;
                    } while (iVar42 < (int)(uint)WStack_310.n);
                  }
                  puVar41 = puVar41 + 8;
                  uVar34 = (uint)WStack_310.n;
                } while (puVar19 != puVar41);
              }
            }
          }
          pWVar40 = pWVar40 + 1;
        } while (pWVar40 < pWVar18);
        *(undefined2 *)(puVar50 + 10) = 1;
        *(WhereTerm **)puVar50[0xc] = pWVar28;
        *(undefined2 *)((int)puVar50 + 0x12) = 0;
        puVar50[9] = 0x2000;
        *(undefined1 *)((int)puVar50 + 0x11) = 0;
        *(undefined1 *)(puVar50 + 6) = 0;
        *(undefined1 *)((int)puVar50 + 0x19) = 0;
        *(undefined1 *)((int)puVar50 + 0x1a) = 0;
        *(undefined1 *)((int)puVar50 + 0x1b) = 0;
        *(undefined1 *)(puVar50 + 7) = 0;
        *(undefined1 *)((int)puVar50 + 0x1d) = 0;
        *(undefined1 *)((int)puVar50 + 0x1e) = 0;
        *(undefined1 *)((int)puVar50 + 0x1f) = 0;
        *(undefined1 *)(puVar50 + 8) = 0;
        *(undefined1 *)((int)puVar50 + 0x21) = 0;
        *(undefined1 *)((int)puVar50 + 0x22) = 0;
        *(undefined1 *)((int)puVar50 + 0x23) = 0;
        if (iVar53 != 0) goto LAB_0008120c;
      }
      else {
        *(undefined2 *)(puVar50 + 10) = 1;
        *(WhereTerm **)puVar50[0xc] = pWVar28;
        *(undefined2 *)((int)puVar50 + 0x12) = 0;
        puVar50[9] = 0x2000;
        *(undefined1 *)((int)puVar50 + 0x11) = 0;
        *(undefined1 *)(puVar50 + 6) = 0;
        *(undefined1 *)((int)puVar50 + 0x19) = 0;
        *(undefined1 *)((int)puVar50 + 0x1a) = 0;
        *(undefined1 *)((int)puVar50 + 0x1b) = 0;
        *(undefined1 *)(puVar50 + 7) = 0;
        *(undefined1 *)((int)puVar50 + 0x1d) = 0;
        *(undefined1 *)((int)puVar50 + 0x1e) = 0;
        *(undefined1 *)((int)puVar50 + 0x1f) = 0;
        *(undefined1 *)(puVar50 + 8) = 0;
        *(undefined1 *)((int)puVar50 + 0x21) = 0;
        *(undefined1 *)((int)puVar50 + 0x22) = 0;
        *(undefined1 *)((int)puVar50 + 0x23) = 0;
      }
      iVar42 = *(int *)(puVar55 + -0x7ef0);
      if (uStack_348._0_2_ != 0) {
        iVar47 = 0;
        puVar43 = &uStack_348;
        puVar55 = puVar54;
        do {
          iVar47 = iVar47 + 1;
          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;
          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);
          uVar34 = puVar43[2];
          puVar50[1] = puVar43[3];
          *puVar50 = uVar34;
          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);
          if (iVar53 != 0) goto LAB_0008120c;
          puVar43 = puVar43 + 4;
          puVar54 = puVar55;
        } while (iVar47 < (int)(uStack_348 >> 0x10));
      }
      pWVar28 = pWVar28 + 1;
    } while (pWVar28 < pWVar52);
    iVar53 = 0;
  }
  else {
LAB_00081208:
    iVar53 = 0;
  }
LAB_0008120c:
  if (iStack_104 != *piVar13) {
    iVar10 = (**(code **)(puVar55 + -0x7ba0))();
    return iVar10;
  }
  return iVar53;
code_r0x00080e78:
  ppWVar32 = *(WhereTerm ***)&pIVar38->szIdxRow;
  (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->btree).nEq = 1;
  pIVar38->azColl = (char **)0x0;
  pIVar38->aColExpr = (ExprList *)&Elf32_Ehdr_00010000;
  *ppWVar32 = (WhereTerm *)pWVar49;
  *(short *)((int)&pIVar38->zColAff + 2) = sStack_b2;
  if ((pTVar6->pSelect == (Select *)0x0) && ((pTVar6->tabFlags & 2) == 0)) {
    sVar21 = sStack_b2 + 0x1c;
  }
  else {
    sVar21 = sStack_b2 + -10;
  }
  if (sVar21 < 0) {
    *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;
  }
  else {
    *(short *)((int)&pIVar38->zColAff + 2) = sVar21;
  }
  *(LogEst *)((int)&pIVar38->pNext + 2) = 0x2b;
  LVar20 = (*pcVar27)(pIVar7,0x2b);
  *(LogEst *)&pIVar38->pNext = LVar20;
  pIVar38->pPartIdxWhere = (Expr *)0x4000;
  pIVar38->zName = (char *)(pWVar49->iContinue | (uint)in_a2);
  pIVar38->aiColumn = (i16 *)(pWVar49->iBreak | (uint)in_a3);
  iVar10 = (*pcVar9)(pBuilder,pIVar38);
  if (iVar10 != 0) goto LAB_00080a6c;
  goto LAB_00080e28;
LAB_00080b5c:
  psVar30 = psVar30 + 1;
  if (psVar31 == psVar30) goto LAB_00080938;
  if (iVar14 == *psVar30) goto LAB_00080b70;
  goto LAB_00080b5c;
LAB_00080938:
  iVar10 = iVar10 + 1;
  pEVar39 = pEVar39 + 1;
  if (pEVar26->nExpr <= iVar10) goto code_r0x00080948;
  goto LAB_000808d4;
code_r0x00080948:
  bVar22 = pProbe->field_0x37;
LAB_0008095c:
  if ((bVar22 & 0xc0) == 0xc0) {
    pIVar38->pPartIdxWhere = (Expr *)0x100;
LAB_00080c28:
    *(short *)&pIVar38->pNext = sVar21 + 0x10;
    *(byte *)((int)&pIVar38->zColAff + 1) = bVar29;
    iVar10 = pWVar25->nTerm;
  }
  else {
LAB_0008096c:
    bVar3 = false;
joined_r0x00080b94:
    if ((bVar22 & 4) == 0) {
      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |
               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;
      pEVar11 = (Expr *)0x240;
      if (uVar34 != 0) {
        pEVar11 = (Expr *)0x200;
      }
      pIVar38->pPartIdxWhere = pEVar11;
      if (!bVar3) goto LAB_00080984;
LAB_00080bcc:
      uVar23 = cVar24 + '\x01';
LAB_000809a4:
      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;
      if (pTVar6->szTabRow == 0) {
        trap(7);
      }
      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;
      *(short *)&pIVar38->pNext = sVar33;
      if (uVar34 != 0) {
        pIVar7 = (Index *)pSrc->iCursor;
        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);
        if (0 < (pWVar44->sWC).nTerm) {
          pWVar45 = (WhereInfo *)0x0;
          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);
          do {
            while( true ) {
              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));
              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);
              if (iVar10 == 0) goto LAB_00080d34;
              sVar33 = (short)pWVar48;
              if (0 < *(short *)&unaff_s6->pIndex) break;
              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);
              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);
              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;
            }
            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {
              sVar33 = sVar33 + -1;
            }
            else {
              sVar33 = sVar33 + -0x14;
            }
            pWVar48 = (WhereInfo *)(int)sVar33;
            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);
          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);
LAB_00080d34:
          sVar33 = *(short *)&pIVar38->pNext;
        }
        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);
        *(LogEst *)&pIVar38->pNext = LVar20;
      }
    }
    else {
      uVar34 = 0;
      pIVar38->pPartIdxWhere = (Expr *)0x240;
      if (bVar3) goto LAB_00080bcc;
LAB_00080984:
      uVar23 = '\0';
      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))
      goto LAB_000809a4;
      if (((uVar34 != 0) ||
          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||
           ((pWVar44->wctrlFlags & 4) != 0)))) ||
         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||
          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;
      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';
      if (pTVar6->szTabRow == 0) {
        trap(7);
      }
      *(short *)&pIVar38->pNext =
           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;
    }
    iVar10 = pWVar25->nTerm;
  }
  pIVar36 = pIVar38;
  pWVar37 = pWVar49;
  (*(code *)(puVar54 + -0x4dc4))(iVar10,&pWVar25->a);
  iVar10 = (*pcVar9)(pBuilder,pIVar38);
  *(short *)((int)&pIVar38->pNext + 2) = sVar21;
  if (iVar10 != 0) goto LAB_00080a6c;
LAB_00080a28:
  pWVar37 = (WhereInfo *)0x0;
  pBuilder->bldFlags = 0;
  pIVar36 = pProbe;
  iVar10 = whereLoopAddBtreeIndex(pBuilder,pSrc,pProbe,0);
  if (pBuilder->bldFlags == 1) {
    pTVar6->tabFlags = pTVar6->tabFlags | 0x100;
  }
  if ((pSrc->pIBIndex != (Index *)0x0) || (pProbe = pProbe->pNext, iVar10 != 0)) goto LAB_00080a6c;
LAB_00080bf4:
  cVar24 = cVar24 + '\x01';
  if (pProbe == (Index *)0x0) goto code_r0x00080c04;
  goto LAB_0008081c;
LAB_00080b70:
  bVar22 = pProbe->field_0x37;
  if ((bVar22 & 0xc0) == 0xc0) {
    pIVar38->pPartIdxWhere = (Expr *)0x100;
    bVar29 = cVar24 + 1;
    goto LAB_00080c28;
  }
  bVar3 = true;
  goto joined_r0x00080b94;
code_r0x00080c04:
  iVar10 = 0;
  goto LAB_00080a6c;
}



int FUN_00080720(int *param_1,undefined4 param_2,uint *param_3,char *param_4)

{
  ushort uVar1;
  ushort uVar2;
  bool bVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined4 *puVar6;
  uint *puVar7;
  int iVar8;
  code *pcVar9;
  code *pcVar10;
  byte bVar18;
  char cVar19;
  char cVar20;
  code *pcVar11;
  undefined2 uVar16;
  short sVar17;
  int *piVar12;
  int iVar13;
  uint uVar14;
  ushort *puVar15;
  int iVar21;
  byte bVar24;
  int *piVar22;
  uint uVar23;
  short sVar28;
  undefined4 uVar25;
  short *psVar26;
  short *psVar27;
  uint uVar29;
  uint *puVar30;
  char *pcVar31;
  uint *puVar32;
  uint uVar33;
  ushort *puVar34;
  int iVar35;
  int iVar36;
  int iVar37;
  uint uVar38;
  char *pcVar39;
  char *pcVar40;
  uint uVar41;
  int iVar42;
  char *pcVar43;
  char *pcVar44;
  undefined4 *puVar45;
  ushort *puVar46;
  char *unaff_s5;
  undefined4 *unaff_s6;
  int iVar47;
  undefined *puVar48;
  uint *puVar49;
  int iStack_364;
  undefined4 *puStack_360;
  undefined4 uStack_35c;
  int iStack_358;
  ushort *puStack_354;
  int iStack_350;
  int iStack_34c;
  uint uStack_348;
  undefined4 uStack_344;
  uint uStack_340;
  undefined4 uStack_33c;
  undefined4 uStack_338;
  undefined4 uStack_334;
  undefined4 uStack_330;
  undefined4 uStack_32c;
  undefined4 uStack_328;
  undefined4 uStack_324;
  undefined4 uStack_320;
  undefined4 uStack_31c;
  undefined4 uStack_318;
  undefined4 uStack_314;
  ushort auStack_310 [4];
  uint auStack_308 [12];
  ushort auStack_2d8 [4];
  uint auStack_2d0 [2];
  ushort auStack_2c8 [20];
  undefined4 uStack_2a0;
  undefined4 *puStack_29c;
  undefined1 uStack_298;
  undefined4 uStack_294;
  uint uStack_28c;
  int iStack_104;
  uint *puStack_100;
  int iStack_fc;
  char *pcStack_f8;
  char *pcStack_f4;
  int *piStack_f0;
  char *pcStack_ec;
  undefined4 *puStack_e8;
  uint *puStack_e4;
  uint *puStack_e0;
  code *pcStack_dc;
  uint *puStack_d0;
  char *pcStack_cc;
  short sStack_b2;
  undefined2 local_7a;
  uint uStack_78;
  undefined2 *local_74;
  short *local_70;
  undefined4 *local_6c;
  undefined4 local_64;
  undefined2 local_48;
  undefined2 local_46;
  undefined2 local_44;
  undefined1 local_42;
  byte local_41;
  short local_30;
  undefined2 local_2e;
  int *local_2c;
  
  puVar48 = PTR___stack_chk_guard_0015ba2c;
  puVar32 = (uint *)param_1[3];
  iVar21 = param_1[1];
  pcVar39 = (char *)*param_1;
  local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;
  local_7a = 0xffff;
  iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;
  puVar6 = *(undefined4 **)(iVar36 + 0x10);
  puVar49 = *(uint **)(iVar36 + 0x44);
  puVar30 = param_3;
  pcVar31 = param_4;
  if (puVar49 == (uint *)0x0) {
    if ((puVar6[9] & 0x20) == 0) {
      puVar49 = &uStack_78;
      puVar30 = (uint *)0x48;
      (*(code *)PTR_memset_0015b9b4)(puVar49,0);
      local_46 = 1;
      local_44 = 1;
      local_6c = puVar6;
      local_42 = 5;
      local_2e = 0;
      local_41 = local_41 & 0x3f | 0xc0;
      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);
      local_74 = &local_7a;
      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);
      local_70 = &local_30;
      local_30 = *(short *)(puVar6 + 0xb);
      if (-1 < *(char *)(iVar36 + 0x25)) {
        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);
      }
    }
    else {
      puVar49 = (uint *)puVar6[2];
      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);
    }
  }
  else {
    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);
  }
  if ((int)pcVar43 < 0xb) {
    iVar8 = param_1[4];
    puVar7 = (uint *)0x0;
  }
  else {
    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);
    iVar8 = param_1[4];
  }
  if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&
        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&
       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&
      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {
    sStack_b2 = (short)puVar7 + (short)pcVar43;
    pcVar44 = *(char **)(iVar21 + 0x14);
    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);
    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);
    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;
    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);
    unaff_s5 = pcVar44;
LAB_00080e28:
    pcVar43 = pcVar44;
    pcVar44 = unaff_s5;
    unaff_s6 = puVar6;
    if (unaff_s5 < pcVar40) {
      do {
        puVar30 = (uint *)puVar32[2];
        pcVar43 = pcVar44 + 0x30;
        unaff_s5 = pcVar43;
        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&
            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {
          pcVar31 = (char *)0x0;
          puVar30 = (uint *)0x0;
          iVar8 = (*pcVar10)(pcVar44,iVar36);
          if (iVar8 != 0) goto code_r0x00080e78;
        }
        pcVar44 = pcVar43;
        if (pcVar40 <= pcVar43) break;
      } while( true );
    }
  }
  puVar5 = PTR_LAB_0015b6d8;
  puVar4 = PTR_LAB_0015b6c0;
  cVar20 = '\0';
  pcVar40 = pcVar39;
  pcVar44 = pcVar43;
  if (puVar49 != (uint *)0x0) {
    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);
    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);
    pcVar43 = unaff_s5;
LAB_0008081c:
    puVar30 = (uint *)puVar49[9];
    if (((puVar30 == (uint *)0x0) ||
        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&
       (-1 < *(char *)(puVar49 + 0xe))) {
      sVar17 = *(short *)puVar49[2];
      pcVar44 = (char *)(int)sVar17;
      puVar32[6] = 0;
      *(undefined2 *)(puVar32 + 7) = 0;
      *puVar32 = (uint)param_3;
      puVar32[10] = 0;
      *(undefined1 *)((int)puVar32 + 0x11) = 0;
      *(undefined2 *)((int)puVar32 + 0x12) = 0;
      *(short *)((int)puVar32 + 0x16) = sVar17;
      puVar32[8] = (uint)puVar49;
      puVar32[1] = (uint)param_4;
      bVar18 = *(byte *)((int)puVar49 + 0x37);
      bVar24 = bVar18 & 0x20;
      if ((bVar18 & 0x20) == 0) {
        piVar22 = *(int **)(*param_1 + 8);
        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {
          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);
          piVar12 = piVar22 + 1;
          iVar37 = 0;
LAB_000808d4:
          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;
              pcVar43 = *(char **)(pcVar43 + 0xc)) {
            while( true ) {
              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {
                puVar7 = puVar49;
                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {
                  if (puVar49[10] == 0) goto LAB_00080938;
                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);
                  puVar45 = (undefined4 *)(puVar49[10] + 4);
                  if (uVar23 == 0) goto LAB_00080938;
                  pcVar31 = (char *)0x0;
                  goto LAB_00080ad0;
                }
                iVar13 = *(int *)(pcVar43 + 0x20);
                if (iVar13 < 0) goto LAB_00080b70;
                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;
                psVar26 = (short *)puVar49[1];
                if (iVar13 == *psVar26) goto LAB_00080b70;
                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);
                goto LAB_00080b5c;
              }
              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;
              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);
              if (pcVar43 == (char *)0x0) goto LAB_0008090c;
            }
          }
LAB_0008090c:
                    /* WARNING: Does not return */
          pcVar9 = (code *)trap(0);
          (*pcVar9)();
        }
        goto LAB_0008095c;
      }
      if ((bVar18 & 0xc0) == 0xc0) {
        bVar24 = 0;
        puVar32[9] = 0x100;
        goto LAB_00080c28;
      }
      goto LAB_0008096c;
    }
    unaff_s5 = pcVar43;
    if (*(int *)(iVar36 + 0x44) == 0) {
      puVar49 = (uint *)puVar49[5];
      goto LAB_00080bf4;
    }
  }
  pcVar43 = unaff_s5;
  iVar8 = 0;
LAB_00080a6c:
  if (local_2c == *(int **)puVar48) {
    return iVar8;
  }
  pcVar9 = FUN_000810a8;
  piVar22 = local_2c;
  puVar48 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  piVar12 = *(int **)(puVar48 + 0xda984);
  puStack_e8 = unaff_s6;
  puStack_e0 = puVar49;
  piStack_f0 = param_1;
  pcStack_dc = pcVar9;
  puStack_e4 = puVar7;
  pcStack_ec = pcVar43;
  pcStack_f4 = pcVar44;
  pcStack_f8 = pcVar40;
  iStack_fc = iVar36;
  puStack_100 = puVar32;
  puVar6 = (undefined4 *)piVar22[1];
  puVar32 = (uint *)piVar22[3];
  uStack_348 = 0;
  uStack_344 = 0;
  uStack_340 = 0;
  uStack_33c = 0;
  uStack_338 = 0;
  uStack_334 = 0;
  uStack_330 = 0;
  uVar29 = puVar6[5] + puVar6[3] * 0x30;
  uStack_32c = 0;
  uStack_328 = 0;
  uStack_324 = 0;
  uStack_320 = 0;
  uStack_31c = 0;
  uStack_318 = 0;
  uStack_314 = 0;
  uVar23 = puVar6[5];
  iStack_104 = *piVar12;
  pcStack_cc = pcVar31;
  puStack_d0 = puVar30;
  puVar30 = (uint *)(uint)(uVar23 < uVar29);
  iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;
  iVar36 = *(int *)(iVar21 + 0x28);
  if (puVar30 == (uint *)0x0) {
LAB_00081208:
    iVar47 = 0;
  }
  else {
    iVar8 = *(int *)(puVar48 + 0xda5b4);
    iVar37 = *(int *)(puVar48 + 0xda630);
    iVar13 = *(int *)(puVar48 + 0xda66c);
    do {
      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||
             (puVar30 = *(uint **)(uVar23 + 0x1c),
             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {
        uVar23 = uVar23 + 0x30;
        if (uVar29 <= uVar23) goto LAB_00081208;
      }
      iStack_364 = *piVar22;
      puStack_360 = (undefined4 *)piVar22[1];
      iStack_358 = piVar22[3];
      iStack_350 = piVar22[5];
      iStack_34c = piVar22[6];
      uVar14 = puVar30[5] + puVar30[3] * 0x30;
      uStack_35c = 0;
      uVar33 = puVar30[5];
      puStack_354 = auStack_310;
      if (uVar33 < uVar14) {
        iVar47 = 0;
        bVar3 = true;
        do {
          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {
            if (*(int *)(uVar33 + 0x14) == iVar36) {
              uStack_2a0 = *puVar6;
              uStack_298 = 0x2c;
              uStack_294 = 1;
              puStack_360 = &uStack_2a0;
              puStack_29c = puVar6;
              uStack_28c = uVar33;
              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;
LAB_000813ec:
              auStack_310[0] = 0;
              iVar47 = FUN_00080720(&iStack_364);
              goto joined_r0x00081334;
            }
          }
          else {
            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);
            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;
LAB_00081310:
            auStack_310[0] = 0;
            iVar47 = FUN_0007403c(&iStack_364);
joined_r0x00081334:
            if (iVar47 == 0) {
              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);
            }
            uVar38 = (uint)auStack_310[0];
            if (uVar38 == 0) {
              uStack_348 = uStack_348 & 0xffff;
              break;
            }
            if (bVar3) {
              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);
              puVar30 = auStack_308;
              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);
              bVar3 = false;
            }
            else {
              uVar41 = (uint)uStack_348._0_2_;
              puVar30 = &uStack_340;
              auStack_2d8[0] = uStack_348._0_2_;
              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);
              uStack_348 = uStack_348 & 0xffff;
              if (uVar41 != 0) {
                puVar34 = auStack_2d8;
                puVar15 = puVar34 + uVar41 * 8;
                do {
                  if (uVar38 != 0) {
                    uVar41 = *(uint *)(puVar34 + 4);
                    iVar35 = 0;
                    uVar38 = *(uint *)(puVar34 + 6);
                    uVar1 = puVar34[8];
                    uVar2 = puVar34[9];
                    puVar46 = auStack_310;
                    do {
                      iVar35 = iVar35 + 1;
                      pcVar9 = (code *)(iVar37 + 0x358);
                      (*(code *)(iVar37 + 0x358))
                                ((int)(short)uVar1,(int)(short)puVar46[8],
                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);
                      puVar30 = (uint *)(int)(short)puVar46[9];
                      (*pcVar9)((int)(short)uVar2);
                      (*(code *)(iVar8 + -0x58))(&uStack_348);
                      puVar46 = puVar46 + 8;
                    } while (iVar35 < (int)(uint)auStack_310[0]);
                  }
                  puVar34 = puVar34 + 8;
                  uVar38 = (uint)auStack_310[0];
                } while (puVar15 != puVar34);
              }
            }
          }
          uVar33 = uVar33 + 0x30;
        } while (uVar33 < uVar14);
        *(undefined2 *)(puVar32 + 10) = 1;
        *(uint *)puVar32[0xc] = uVar23;
        *(undefined2 *)((int)puVar32 + 0x12) = 0;
        puVar32[9] = 0x2000;
        *(undefined1 *)((int)puVar32 + 0x11) = 0;
        *(undefined1 *)(puVar32 + 6) = 0;
        *(undefined1 *)((int)puVar32 + 0x19) = 0;
        *(undefined1 *)((int)puVar32 + 0x1a) = 0;
        *(undefined1 *)((int)puVar32 + 0x1b) = 0;
        *(undefined1 *)(puVar32 + 7) = 0;
        *(undefined1 *)((int)puVar32 + 0x1d) = 0;
        *(undefined1 *)((int)puVar32 + 0x1e) = 0;
        *(undefined1 *)((int)puVar32 + 0x1f) = 0;
        *(undefined1 *)(puVar32 + 8) = 0;
        *(undefined1 *)((int)puVar32 + 0x21) = 0;
        *(undefined1 *)((int)puVar32 + 0x22) = 0;
        *(undefined1 *)((int)puVar32 + 0x23) = 0;
        if (iVar47 != 0) goto LAB_0008120c;
      }
      else {
        *(undefined2 *)(puVar32 + 10) = 1;
        *(uint *)puVar32[0xc] = uVar23;
        *(undefined2 *)((int)puVar32 + 0x12) = 0;
        puVar32[9] = 0x2000;
        *(undefined1 *)((int)puVar32 + 0x11) = 0;
        *(undefined1 *)(puVar32 + 6) = 0;
        *(undefined1 *)((int)puVar32 + 0x19) = 0;
        *(undefined1 *)((int)puVar32 + 0x1a) = 0;
        *(undefined1 *)((int)puVar32 + 0x1b) = 0;
        *(undefined1 *)(puVar32 + 7) = 0;
        *(undefined1 *)((int)puVar32 + 0x1d) = 0;
        *(undefined1 *)((int)puVar32 + 0x1e) = 0;
        *(undefined1 *)((int)puVar32 + 0x1f) = 0;
        *(undefined1 *)(puVar32 + 8) = 0;
        *(undefined1 *)((int)puVar32 + 0x21) = 0;
        *(undefined1 *)((int)puVar32 + 0x22) = 0;
        *(undefined1 *)((int)puVar32 + 0x23) = 0;
      }
      iVar35 = *(int *)(puVar48 + 0xda618);
      if (uStack_348._0_2_ != 0) {
        iVar42 = 0;
        puVar49 = &uStack_348;
        do {
          iVar42 = iVar42 + 1;
          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;
          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);
          uVar14 = puVar49[2];
          puVar32[1] = puVar49[3];
          *puVar32 = uVar14;
          puVar30 = puVar32;
          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);
          if (iVar47 != 0) goto LAB_0008120c;
          puVar49 = puVar49 + 4;
        } while (iVar42 < (int)(uStack_348 >> 0x10));
      }
      uVar23 = uVar23 + 0x30;
    } while (uVar23 < uVar29);
    iVar47 = 0;
  }
LAB_0008120c:
  if (iStack_104 == *piVar12) {
    return iVar47;
  }
  iVar21 = iStack_104;
  (**(code **)(puVar48 + 0xda968))();
  iVar36 = *(int *)(iVar21 + 0x18);
  iVar21 = FUN_0007bd64(0);
  if (iVar21 != 0) {
    return 0;
  }
  *(undefined1 *)puVar30 = 0x9e;
  puVar30[7] = *(uint *)(iVar36 + 8);
  uVar23 = *(uint *)(iVar36 + 0xc);
  puVar30[0xc] = 0;
  puVar30[8] = uVar23;
  return 1;
code_r0x00080e78:
  *(undefined2 *)(puVar32 + 6) = 1;
  puVar32[8] = 0;
  puVar32[10] = 0x10000;
  *(char **)puVar32[0xc] = pcVar44;
  *(short *)((int)puVar32 + 0x12) = sStack_b2;
  if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {
    sVar17 = sStack_b2 + 0x1c;
  }
  else {
    sVar17 = sStack_b2 + -10;
  }
  if (sVar17 < 0) {
    *(undefined2 *)((int)puVar32 + 0x12) = 0;
  }
  else {
    *(short *)((int)puVar32 + 0x12) = sVar17;
  }
  *(undefined2 *)((int)puVar32 + 0x16) = 0x2b;
  uVar16 = (*pcVar11)(puVar7,0x2b);
  *(undefined2 *)(puVar32 + 5) = uVar16;
  puVar32[9] = 0x4000;
  *puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;
  puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;
  iVar8 = (*pcVar9)(param_1,puVar32);
  if (iVar8 != 0) goto LAB_00080a6c;
  goto LAB_00080e28;
  while( true ) {
    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);
    if (iVar8 == 0) goto LAB_00080b70;
    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);
    puVar45 = puVar45 + 5;
    pcVar31 = pcVar40 + 1;
    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;
LAB_00080ad0:
    pcVar40 = pcVar31;
    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {
      puVar45 = puVar45 + 5;
      pcVar31 = pcVar40 + 1;
      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;
      goto LAB_00080ad0;
    }
  }
  pcVar40 = pcVar40 + 1;
  iVar8 = *piVar22;
LAB_00080938:
  iVar37 = iVar37 + 1;
  piVar12 = piVar12 + 5;
  if (iVar8 <= iVar37) goto code_r0x00080948;
  goto LAB_000808d4;
LAB_00080b5c:
  psVar26 = psVar26 + 1;
  if (psVar27 == psVar26) goto LAB_00080938;
  if (iVar13 == *psVar26) goto LAB_00080b70;
  goto LAB_00080b5c;
code_r0x00080948:
  bVar18 = *(byte *)((int)puVar49 + 0x37);
LAB_0008095c:
  if ((bVar18 & 0xc0) == 0xc0) {
    puVar32[9] = 0x100;
LAB_00080c28:
    *(short *)(puVar32 + 5) = sVar17 + 0x10;
    *(byte *)((int)puVar32 + 0x11) = bVar24;
    uVar25 = *(undefined4 *)(iVar21 + 0xc);
  }
  else {
LAB_0008096c:
    bVar3 = false;
joined_r0x00080b94:
    if ((bVar18 & 4) == 0) {
      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];
      uVar23 = 0x240;
      if (uVar29 != 0) {
        uVar23 = 0x200;
      }
      puVar32[9] = uVar23;
      if (!bVar3) goto LAB_00080984;
LAB_00080bcc:
      cVar19 = cVar20 + '\x01';
LAB_000809a4:
      *(char *)((int)puVar32 + 0x11) = cVar19;
      if (*(short *)((int)puVar6 + 0x2e) == 0) {
        trap(7);
      }
      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +
               sVar17 + 1;
      *(short *)(puVar32 + 5) = sVar28;
      if (uVar29 != 0) {
        puVar7 = *(uint **)(iVar36 + 0x28);
        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);
        if (0 < *(int *)(pcVar39 + 0x5c)) {
          pcVar40 = (char *)0x0;
          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);
          do {
            while( true ) {
              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);
              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);
              if (iVar8 == 0) goto LAB_00080d34;
              sVar28 = (short)pcVar43;
              if (0 < *(short *)(unaff_s6 + 2)) break;
              pcVar40 = pcVar40 + 1;
              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));
              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;
            }
            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {
              sVar28 = sVar28 + -1;
            }
            else {
              sVar28 = sVar28 + -0x14;
            }
            pcVar43 = (char *)(int)sVar28;
            pcVar40 = pcVar40 + 1;
          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));
LAB_00080d34:
          sVar28 = *(short *)(puVar32 + 5);
        }
        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);
        *(undefined2 *)(puVar32 + 5) = uVar16;
      }
    }
    else {
      uVar29 = 0;
      puVar32[9] = 0x240;
      if (bVar3) goto LAB_00080bcc;
LAB_00080984:
      cVar19 = '\0';
      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;
      if (((uVar29 != 0) ||
          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||
            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||
           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||
         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||
          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;
      *(undefined1 *)((int)puVar32 + 0x11) = 0;
      if (*(short *)((int)puVar6 + 0x2e) == 0) {
        trap(7);
      }
      *(short *)(puVar32 + 5) =
           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +
           sVar17 + 1;
    }
    uVar25 = *(undefined4 *)(iVar21 + 0xc);
  }
  puVar30 = puVar32;
  pcVar31 = pcVar44;
  (*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);
  iVar8 = (*pcVar9)(param_1,puVar32);
  *(short *)((int)puVar32 + 0x16) = sVar17;
  if (iVar8 != 0) goto LAB_00080a6c;
LAB_00080a28:
  pcVar31 = (char *)0x0;
  param_1[5] = 0;
  puVar30 = puVar49;
  iVar8 = FUN_0007dec0(param_1,iVar36);
  if (param_1[5] == 1) {
    puVar6[9] = puVar6[9] | 0x100;
  }
  if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))
  goto LAB_00080a6c;
LAB_00080bf4:
  cVar20 = cVar20 + '\x01';
  if (puVar49 == (uint *)0x0) goto code_r0x00080c04;
  goto LAB_0008081c;
LAB_00080b70:
  bVar18 = *(byte *)((int)puVar49 + 0x37);
  if ((bVar18 & 0xc0) == 0xc0) {
    puVar32[9] = 0x100;
    bVar24 = cVar20 + 1;
    goto LAB_00080c28;
  }
  bVar3 = true;
  goto joined_r0x00080b94;
code_r0x00080c04:
  iVar8 = 0;
  goto LAB_00080a6c;
}


lui gp,0xe
addiu gp,gp,0x2e90
addu gp,gp,t9
addiu sp,sp,-0xd8
lw v0,-0x7b84(gp)
sw s4,0xc0(sp)
or s4,a0,zero
sw gp,0x10(sp)
sw ra,0xd4(sp)
sw s8,0xd0(sp)
sw s7,0xcc(sp)
sw s6,0xc8(sp)
sw s5,0xc4(sp)
sw s3,0xbc(sp)
sw s2,0xb8(sp)
sw s1,0xb4(sp)
sw s0,0xb0(sp)
sw v0,0x54(sp)
lw s0,0xc(a0)
lw v1,0x4(a0)
lw s2,0x0(a0)
li a0,-0x1
lw v0,0x0(v0)
sw v1,0x20(sp)
lbu v1,0x10(s0)
lw s1,0x4(s2)
sw v0,0xac(sp)
sll v0,v1,0x3
sw a2,0x30(sp)
addiu s1,s1,0x8
sw a3,0x34(sp)
addu v0,v0,v1
sh a0,0x5e(sp)
sll v0,v0,0x3
addu s1,s1,v0
lw v0,0x10(s1)
lw s8,0x44(s1)
beq s8,zero,0x00080fc4
_sw v0,0x2c(sp)
lh s3,0x2c(v0)
slti v0,s3,0xb
bne v0,zero,0x00080d60
_lw t9,-0x7ef0(gp)
addiu t9,t9,0x5c64
jalr t9
_or a0,s3,zero
or s7,v0,zero
lw v0,0x10(s4)
beq v0,zero,0x00080d6c
_lw gp,0x10(sp)
beq s8,zero,0x00080be8
_sw zero,0x24(sp)
lw v0,-0x7ef0(gp)
sw s2,0x4c(sp)
sw v0,0x38(sp)
lw v0,-0x7ef0(gp)
addiu v0,v0,-0x51d8
sw v0,0x3c(sp)
lw v0,-0x7ed8(gp)
sw v0,0x50(sp)
lw v0,-0x7e9c(gp)
addiu v0,v0,-0x2b38
sw v0,0x18(sp)
lw a2,0x24(s8)
beq a2,zero,0x00080840
_lw t9,-0x7e9c(gp)
lw a0,0x28(s1)
addiu t9,t9,0x5b0
bal 0x000805b0
_lw a1,0x20(sp)
beq v0,zero,0x00080bdc
_lw gp,0x10(sp)
lb v0,0x38(s8)
bltz v0,0x00080bdc
_nop
lw v0,0x8(s8)
lh s3,0x0(v0)
lw v0,0x30(sp)
sw zero,0x18(s0)
sh zero,0x1c(s0)
sw v0,0x0(s0)
sw zero,0x28(s0)
sb zero,0x11(s0)
sh zero,0x12(s0)
sh s3,0x16(s0)
sw s8,0x20(s0)
lw v0,0x34(sp)
sw v0,0x4(s0)
lbu v0,0x37(s8)
andi v1,v0,0x20
bne v1,zero,0x00080c0c
_sw v1,0x28(sp)
lw v1,0x0(s4)
lw v1,0x8(v1)
beq v1,zero,0x0008095c
_sw v1,0x1c(sp)
lw a1,0x0(v1)
blez a1,0x0008095c
_lw v1,0x1c(sp)
or s7,zero,zero
lw v0,0x28(s1)
sw s0,0x40(sp)
addiu s6,v1,0x4
sw s1,0x44(sp)
sw s3,0x48(sp)
or s1,s7,zero
or s0,s6,zero
or s7,s8,zero
or s6,v0,zero
lw s5,0x0(s0)
beq s5,zero,0x0008090c
_nop
lw v0,0x4(s5)
andi v1,v0,0x1000
beq v1,zero,0x0008091c
_lui v1,0x4
and v0,v0,v1
beq v0,zero,0x00080914
_nop
lw v0,0x14(s5)
lw s5,0x4(v0)
bne s5,zero,0x000808e0
_nop
lbu v0,0x0(zero)
teq zero,zero
b 0x000808d8
_lw s5,0xc(s5)
lbu v0,0x0(s5)
li v1,0x9e
beq v0,v1,0x00080b20
_nop
lw v1,0x28(s7)
bne v1,zero,0x00080aa8
_nop
addiu s1,s1,0x1
slt v0,s1,a1
bne v0,zero,0x000808d4
_addiu s0,s0,0x14
lw s0,0x40(sp)
or s8,s7,zero
lw s1,0x44(sp)
lw s3,0x48(sp)
lbu v0,0x37(s7)
li v1,0xc0
andi a0,v0,0xc0
beq a0,v1,0x00080f20
_andi v0,v0,0x4
beq v0,zero,0x00080b9c
_or v1,zero,zero
li v0,0x240
or a1,zero,zero
bne v1,zero,0x00080bcc
_sw v0,0x24(s0)
lw v0,0x2c(sp)
lw v0,0x24(v0)
andi v0,v0,0x20
bne v0,zero,0x000809a4
_or v0,zero,zero
lw v0,0x24(s8)
beq v0,zero,0x00080f2c
_or v0,zero,zero
sb v0,0x11(s0)
andi v1,s3,0xffff
lw v0,0x2c(sp)
addiu a3,v1,0x1
lh a2,0x30(s8)
lh a0,0x2e(v0)
sll v0,a2,0x4
subu v0,v0,a2
teq a0,zero
div v0,a0
mflo a0
addu a0,a0,a3
seh a0,a0
bne a1,zero,0x00080c7c
_sh a0,0x14(s0)
lw v0,0x20(sp)
addiu a1,v0,0x14
lw a0,0xc(v0)
lw v0,0x38(sp)
addiu t9,v0,-0x4dc4
or a3,s3,zero
jalr t9
_or a2,s0,zero
or a1,s0,zero
lw t9,0x3c(sp)
jalr t9
_or a0,s4,zero
lw gp,0x10(sp)
bne v0,zero,0x00080a68
_sh s3,0x16(s0)
lw t9,-0x7e9c(gp)
or a3,zero,zero
or a0,s4,zero
sw zero,0x14(s4)
or a2,s8,zero
addiu t9,t9,-0x2140
bal 0x0007dec0
_or a1,s1,zero
li v1,0x1
lw a0,0x14(s4)
bne a0,v1,0x00080a5c
_lw gp,0x10(sp)
lw a0,0x2c(sp)
lw v1,0x24(a0)
ori v1,v1,0x100
sw v1,0x24(a0)
lw v1,0x44(s1)
beq v1,zero,0x00080c50
_nop
lw v1,0x54(sp)
lw a0,0xac(sp)
lw v1,0x0(v1)
bne a0,v1,0x0008109c
_lw ra,0xd4(sp)
lw s8,0xd0(sp)
lw s7,0xcc(sp)
lw s6,0xc8(sp)
lw s5,0xc4(sp)
lw s4,0xc0(sp)
lw s3,0xbc(sp)
lw s2,0xb8(sp)
lw s1,0xb4(sp)
lw s0,0xb0(sp)
jr ra
_addiu sp,sp,0xd8
lhu a0,0x32(s7)
beq a0,zero,0x00080938
_addiu s3,v1,0x4
or s2,zero,zero
b 0x00080ad0
_li s8,-0x2
addiu s2,s2,0x1
slt v0,s2,a0
beq v0,zero,0x00080b14
_addiu s3,s3,0x14
lw v0,0x4(s7)
sll v1,s2,0x1
addu v0,v0,v1
lh v0,0x0(v0)
bne v0,s8,0x00080ac0
_or a2,s6,zero
lw a1,0x0(s3)
lw t9,0x18(sp)
jalr t9
_or a0,s5,zero
beq v0,zero,0x00080b70
_lw gp,0x10(sp)
lhu a0,0x32(s7)
addiu s2,s2,0x1
slt v0,s2,a0
bne v0,zero,0x00080ad0
_addiu s3,s3,0x14
lw v0,0x1c(sp)
b 0x00080938
_lw a1,0x0(v0)
lw v0,0x1c(s5)
bne s6,v0,0x0008092c
_nop
lw a2,0x20(s5)
bltz a2,0x00080b70
_nop
lhu v0,0x32(s7)
beq v0,zero,0x00080938
_nop
lw a0,0x4(s7)
lh v1,0x0(a0)
beq a2,v1,0x00080b70
_sll v1,v0,0x1
addiu v0,a0,0x2
addu a0,a0,v1
beq a0,v0,0x00080938
_nop
lh v1,0x0(v0)
bne a2,v1,0x00080b5c
_addiu v0,v0,0x2
lbu v0,0x37(s7)
li v1,0xc0
or s8,s7,zero
lw s0,0x40(sp)
lw s1,0x44(sp)
andi a0,v0,0xc0
beq a0,v1,0x00080c60
_lw s3,0x48(sp)
andi v0,v0,0x4
bne v0,zero,0x00080974
_li v1,0x1
lw a0,0x44(s8)
lw a1,0x38(s1)
lw a2,0x40(s8)
lw v0,0x3c(s1)
and a1,a1,a2
and v0,v0,a0
or a1,a1,v0
li a0,0x200
li v0,0x240
movn v0,a0,a1
beq v1,zero,0x00080984
_sw v0,0x24(s0)
lw v0,0x24(sp)
addiu v0,v0,0x1
b 0x000809a4
_andi v0,v0,0xff
lw v0,0x44(s1)
beq v0,zero,0x00080bf0
_nop
b 0x00080a68
_or v0,zero,zero
lw s8,0x14(s8)
lw v0,0x24(sp)
addiu v0,v0,0x1
bne s8,zero,0x0008081c
_sw v0,0x24(sp)
b 0x00080a68
_or v0,zero,zero
li v1,0xc0
andi a0,v0,0xc0
bne a0,v1,0x0008096c
_andi v0,v0,0x4
li v0,0x100
sw zero,0x28(sp)
sw v0,0x24(s0)
lw v1,0x28(sp)
addiu v0,s3,0x10
sh v0,0x14(s0)
sb v1,0x11(s0)
lw v1,0x20(sp)
lw v0,0x38(sp)
addiu a1,v1,0x14
addiu t9,v0,-0x4dc4
b 0x000809f4
_lw a0,0xc(v1)
beq v0,zero,0x00080bf4
_lw s8,0x14(s8)
b 0x00080a6c
_lw v1,0x54(sp)
lw v0,0x24(sp)
li v1,0x100
sw v1,0x24(s0)
addiu v0,v0,0x1
andi v0,v0,0xff
b 0x00080c28
_sw v0,0x28(sp)
lw a1,0x4c(sp)
addiu v1,v1,0x10
lw s7,0x28(s1)
lw v0,0x5c(a1)
blez v0,0x00080d3c
_seh s5,v1
lw v0,-0x7ed8(gp)
or s6,zero,zero
sw s0,0x28(sp)
or s0,a1,zero
or s2,s6,zero
addiu v0,v0,0x7254
b 0x00080ce0
_sw v0,0x1c(sp)
lhu v0,0xc(s6)
andi v0,v0,0x82
bne v0,zero,0x00080d54
_nop
addiu s5,s5,-0x1
seh s5,s5
lw v0,0x5c(s0)
addiu s2,s2,0x1
slt v0,s2,v0
beq v0,zero,0x00080d34
_nop
sll v0,s2,0x1
lw s6,0x64(s0)
lw t9,0x1c(sp)
or a2,s8,zero
addu v0,v0,s2
or a1,s7,zero
sll v0,v0,0x4
addu s6,s6,v0
jalr t9
_lw a0,0x0(s6)
beq v0,zero,0x00080d34
_nop
lh v0,0x8(s6)
bgtz v0,0x00080cb4
_andi s5,s5,0xffff
addu s5,s5,v0
lw v0,0x5c(s0)
addiu s2,s2,0x1
slt v0,s2,v0
bne v0,zero,0x00080ce0
_seh s5,s5
lw s0,0x28(sp)
lh a0,0x14(s0)
lw v0,0x50(sp)
addiu t9,v0,0x358
jalr t9
_or a1,s5,zero
b 0x000809e0
_sh v0,0x14(s0)
addiu s5,s5,-0x14
b 0x00080ccc
_seh s5,s5
lw v0,0x10(s4)
bne v0,zero,0x000807e8
_or s7,zero,zero
lhu v0,0x2c(s2)
andi v0,v0,0x20
bne v0,zero,0x000807e8
_nop
lw v0,0x0(s2)
lw v0,0x0(v0)
lw v0,0x24(v0)
andi v0,v0,0x8000
beq v0,zero,0x000807e8
_nop
lw v0,0x44(s1)
bne v0,zero,0x000807e8
_nop
lb v0,0x25(s1)
bltz v0,0x000807e8
_nop
lw a0,0x2c(sp)
lw v0,0x24(a0)
andi v0,v0,0x20
bne v0,zero,0x000807e8
_lui v1,0x14
lw v0,0x24(s1)
and v0,v0,v1
bne v0,zero,0x000807e8
_lw v1,0x20(sp)
addu a1,s7,s3
lw s5,-0x7ed8(gp)
lw s6,-0x7ef0(gp)
sw s2,0x18(sp)
lw v0,0xc(v1)
lw s3,0x14(v1)
sw a1,0x24(sp)
sll v1,v0,0x1
addu v0,v1,v0
lw v1,-0x7ef0(gp)
sll v0,v0,0x4
addiu v1,v1,-0x5530
sw v1,0x1c(sp)
addiu v1,s5,0x358
addu s5,s3,v0
addiu v0,s6,-0x51d8
sw v1,0x28(sp)
or s2,s5,zero
sw v0,0x38(sp)
or s6,a0,zero
or s5,s3,zero
sltu v0,s5,s2
beq v0,zero,0x0008108c
_nop
or s3,s5,zero
lw v0,0x20(s3)
lw a2,0x8(s0)
lw a0,0x24(s3)
lw a1,0xc(s0)
and v0,v0,a2
and a0,a0,a1
or v0,v0,a0
bne v0,zero,0x00081080
_addiu s5,s5,0x30
lw t9,0x1c(sp)
or a3,zero,zero
or a2,zero,zero
or a1,s1,zero
jalr t9
_or a0,s3,zero
beq v0,zero,0x00081080
_lw gp,0x10(sp)
lw a0,0x30(s0)
li a1,0x1
lhu v0,0x26(sp)
sh a1,0x18(s0)
lui a1,0x1
sw zero,0x20(s0)
sw a1,0x28(s0)
sw s3,0x0(a0)
sh v0,0x12(s0)
lw a0,0xc(s6)
beq a0,zero,0x00081064
_nop
addiu v0,v0,-0xa
seh v0,v0
bltz v0,0x00081094
_nop
sh v0,0x12(s0)
li v0,0x2b
lw t9,0x28(sp)
li a1,0x2b
or a0,s7,zero
jalr t9
_sh v0,0x16(s0)
or a1,s0,zero
lw v1,0x30(sp)
or a0,s4,zero
sh v0,0x14(s0)
li v0,0x4000
lw t9,0x38(sp)
sw v0,0x24(s0)
lw v0,0x20(s3)
or v0,v0,v1
lw v1,0x34(sp)
sw v0,0x0(s0)
lw v0,0x24(s3)
or v0,v0,v1
jalr t9
_sw v0,0x4(s0)
bne v0,zero,0x00080a68
_lw gp,0x10(sp)
b 0x00080e28
_sltu v0,s5,s2
li v0,0x100
b 0x00080c28
_sw v0,0x24(s0)
bne a1,zero,0x00080a20
_lw t9,-0x7e9c(gp)
lbu v0,0x37(s8)
andi v0,v0,0x20
bne v0,zero,0x00080a24
_or a3,zero,zero
lw v1,0x2c(sp)
lh v0,0x30(s8)
lh v1,0x2e(v1)
slt v0,v0,v1
beq v0,zero,0x00080a28
_or a0,s4,zero
lw v1,0x4c(sp)
lhu v0,0x2c(v1)
andi v0,v0,0x4
bne v0,zero,0x00080a28
_lw v0,-0x7fd8(gp)
lw v0,-0x5dc8(v0)
beq v0,zero,0x00080a28
_nop
lw v0,0x0(v1)
lw v0,0x0(v0)
lhu v0,0x4c(v0)
andi v0,v0,0x20
bne v0,zero,0x00080a28
_lw v0,0x2c(sp)
addiu v1,s3,0x1
sb zero,0x11(s0)
lh a1,0x30(s8)
lh a0,0x2e(v0)
sll v0,a1,0x4
subu v0,v0,a1
teq a0,zero
div v0,a0
mflo v0
addu v0,v0,v1
b 0x000809e0
_sh v0,0x14(s0)
lw v1,0x2c(sp)
lw v0,0x24(v1)
andi v0,v0,0x20
beq v0,zero,0x00080fe4
_lw t9,-0x7bfc(gp)
lw s8,0x8(v1)
b 0x000807c0
_lh s3,0x2c(v1)
addiu s8,sp,0x60
li a2,0x48
or a1,zero,zero
jalr t9
_or a0,s8,zero
li v1,0x1
lbu v0,0x97(sp)
lw a0,0x2c(sp)
sh v1,0x92(sp)
sh v1,0x94(sp)
li v1,0x5
sw a0,0x6c(sp)
sb v1,0x96(sp)
li v1,0x3
sh zero,0xaa(sp)
ins v0,v1,0x6,0x2
lh v1,0x2e(a0)
lw gp,0x10(sp)
sb v0,0x97(sp)
addiu v0,sp,0x5e
sh v1,0x90(sp)
sw v0,0x64(sp)
addiu v0,sp,0xa8
lh s3,0x2c(a0)
sw v0,0x68(sp)
lb v0,0x25(s1)
bltz v0,0x000807c0
_sh s3,0xa8(sp)
lw v0,0x10(s1)
lw v0,0x8(v0)
b 0x000807c0
_sw v0,0x74(sp)
lw a0,0x24(s6)
andi a0,a0,0x2
bne a0,zero,0x00080ea8
_nop
addiu v0,v0,0x1c
b 0x00080eb0
_seh v0,v0
sltu v0,s5,s2
bne v0,zero,0x00080e34
_or s3,s5,zero
b 0x000807e8
_lw s2,0x18(sp)
b 0x00080ebc
_sh zero,0x12(s0)
lw t9,-0x7ba0(gp)
jalr t9
_nop
(translation_unit "int FUN_00080720(int *param_1,undefined4 param_2,uint *param_3,char *param_4)\n\n{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  code *pcVar9;\n  code *pcVar10;\n  byte bVar18;\n  char cVar19;\n  char cVar20;\n  code *pcVar11;\n  undefined2 uVar16;\n  short sVar17;\n  int *piVar12;\n  int iVar13;\n  uint uVar14;\n  ushort *puVar15;\n  int iVar21;\n  byte bVar24;\n  int *piVar22;\n  uint uVar23;\n  short sVar28;\n  undefined4 uVar25;\n  short *psVar26;\n  short *psVar27;\n  uint uVar29;\n  uint *puVar30;\n  char *pcVar31;\n  uint *puVar32;\n  uint uVar33;\n  ushort *puVar34;\n  int iVar35;\n  int iVar36;\n  int iVar37;\n  uint uVar38;\n  char *pcVar39;\n  char *pcVar40;\n  uint uVar41;\n  int iVar42;\n  char *pcVar43;\n  char *pcVar44;\n  undefined4 *puVar45;\n  ushort *puVar46;\n  char *unaff_s5;\n  undefined4 *unaff_s6;\n  int iVar47;\n  undefined *puVar48;\n  uint *puVar49;\n  int iStack_364;\n  undefined4 *puStack_360;\n  undefined4 uStack_35c;\n  int iStack_358;\n  ushort *puStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_348;\n  undefined4 uStack_344;\n  uint uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  ushort auStack_310 [4];\n  uint auStack_308 [12];\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  undefined4 uStack_2a0;\n  undefined4 *puStack_29c;\n  undefined1 uStack_298;\n  undefined4 uStack_294;\n  uint uStack_28c;\n  int iStack_104;\n  uint *puStack_100;\n  int iStack_fc;\n  char *pcStack_f8;\n  char *pcStack_f4;\n  int *piStack_f0;\n  char *pcStack_ec;\n  undefined4 *puStack_e8;\n  uint *puStack_e4;\n  uint *puStack_e0;\n  code *pcStack_dc;\n  uint *puStack_d0;\n  char *pcStack_cc;\n  short sStack_b2;\n  undefined2 local_7a;\n  uint uStack_78;\n  undefined2 *local_74;\n  short *local_70;\n  undefined4 *local_6c;\n  undefined4 local_64;\n  undefined2 local_48;\n  undefined2 local_46;\n  undefined2 local_44;\n  undefined1 local_42;\n  byte local_41;\n  short local_30;\n  undefined2 local_2e;\n  int *local_2c;\n  \n  puVar48 = PTR___stack_chk_guard_0015ba2c;\n  puVar32 = (uint *)param_1[3];\n  iVar21 = param_1[1];\n  pcVar39 = (char *)*param_1;\n  local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;\n  local_7a = 0xffff;\n  iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  puVar6 = *(undefined4 **)(iVar36 + 0x10);\n  puVar49 = *(uint **)(iVar36 + 0x44);\n  puVar30 = param_3;\n  pcVar31 = param_4;\n  if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }\n  if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }\n  if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }\n  puVar5 = PTR_LAB_0015b6d8;\n  puVar4 = PTR_LAB_0015b6c0;\n  cVar20 = '\0';\n  pcVar40 = pcVar39;\n  pcVar44 = pcVar43;\n  if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }\n  pcVar43 = unaff_s5;\n  iVar8 = 0;\nLAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }\n  pcVar9 = FUN_000810a8;\n  piVar22 = local_2c;\n  puVar48 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar48 + 0xda984);\n  puStack_e8 = unaff_s6;\n  puStack_e0 = puVar49;\n  piStack_f0 = param_1;\n  pcStack_dc = pcVar9;\n  puStack_e4 = puVar7;\n  pcStack_ec = pcVar43;\n  pcStack_f4 = pcVar44;\n  pcStack_f8 = pcVar40;\n  iStack_fc = iVar36;\n  puStack_100 = puVar32;\n  puVar6 = (undefined4 *)piVar22[1];\n  puVar32 = (uint *)piVar22[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  uVar29 = puVar6[5] + puVar6[3] * 0x30;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  uVar23 = puVar6[5];\n  iStack_104 = *piVar12;\n  pcStack_cc = pcVar31;\n  puStack_d0 = puVar30;\n  puVar30 = (uint *)(uint)(uVar23 < uVar29);\n  iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  iVar36 = *(int *)(iVar21 + 0x28);\n  if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }\n  iVar21 = iStack_104;\n  (**(code **)(puVar48 + 0xda968))();\n  iVar36 = *(int *)(iVar21 + 0x18);\n  iVar21 = FUN_0007bd64(0);\n  if (iVar21 != 0) {\n    return 0;\n  }\n  *(undefined1 *)puVar30 = 0x9e;\n  puVar30[7] = *(uint *)(iVar36 + 8);\n  uVar23 = *(uint *)(iVar36 + 0xc);\n  puVar30[0xc] = 0;\n  puVar30[8] = uVar23;\n  return 1;\ncode_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;\n  puVar32[8] = 0;\n  puVar32[10] = 0x10000;\n  *(char **)puVar32[0xc] = pcVar44;\n  *(short *)((int)puVar32 + 0x12) = sStack_b2;\n  if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }\n  if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }\n  *(undefined2 *)((int)puVar32 + 0x16) = 0x2b;\n  uVar16 = (*pcVar11)(puVar7,0x2b);\n  *(undefined2 *)(puVar32 + 5) = uVar16;\n  puVar32[9] = 0x4000;\n  *puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;\n  puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  if (iVar8 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\n  while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }\n  pcVar40 = pcVar40 + 1;\n  iVar8 = *piVar22;\nLAB_00080938:\n  iVar37 = iVar37 + 1;\n  piVar12 = piVar12 + 5;\n  if (iVar8 <= iVar37) goto code_r0x00080948;\n  goto LAB_000808d4;\nLAB_00080b5c:\n  psVar26 = psVar26 + 1;\n  if (psVar27 == psVar26) goto LAB_00080938;\n  if (iVar13 == *psVar26) goto LAB_00080b70;\n  goto LAB_00080b5c;\ncode_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\nLAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  puVar30 = puVar32;\n  pcVar31 = pcVar44;\n  (*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  *(short *)((int)puVar32 + 0x16) = sVar17;\n  if (iVar8 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pcVar31 = (char *)0x0;\n  param_1[5] = 0;\n  puVar30 = puVar49;\n  iVar8 = FUN_0007dec0(param_1,iVar36);\n  if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }\n  if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar20 = cVar20 + '\x01';\n  if (puVar49 == (uint *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar8 = 0;\n  goto LAB_00080a6c;\n}\n\n" (function_definition "int FUN_00080720(int *param_1,undefined4 param_2,uint *param_3,char *param_4)\n\n{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  code *pcVar9;\n  code *pcVar10;\n  byte bVar18;\n  char cVar19;\n  char cVar20;\n  code *pcVar11;\n  undefined2 uVar16;\n  short sVar17;\n  int *piVar12;\n  int iVar13;\n  uint uVar14;\n  ushort *puVar15;\n  int iVar21;\n  byte bVar24;\n  int *piVar22;\n  uint uVar23;\n  short sVar28;\n  undefined4 uVar25;\n  short *psVar26;\n  short *psVar27;\n  uint uVar29;\n  uint *puVar30;\n  char *pcVar31;\n  uint *puVar32;\n  uint uVar33;\n  ushort *puVar34;\n  int iVar35;\n  int iVar36;\n  int iVar37;\n  uint uVar38;\n  char *pcVar39;\n  char *pcVar40;\n  uint uVar41;\n  int iVar42;\n  char *pcVar43;\n  char *pcVar44;\n  undefined4 *puVar45;\n  ushort *puVar46;\n  char *unaff_s5;\n  undefined4 *unaff_s6;\n  int iVar47;\n  undefined *puVar48;\n  uint *puVar49;\n  int iStack_364;\n  undefined4 *puStack_360;\n  undefined4 uStack_35c;\n  int iStack_358;\n  ushort *puStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_348;\n  undefined4 uStack_344;\n  uint uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  ushort auStack_310 [4];\n  uint auStack_308 [12];\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  undefined4 uStack_2a0;\n  undefined4 *puStack_29c;\n  undefined1 uStack_298;\n  undefined4 uStack_294;\n  uint uStack_28c;\n  int iStack_104;\n  uint *puStack_100;\n  int iStack_fc;\n  char *pcStack_f8;\n  char *pcStack_f4;\n  int *piStack_f0;\n  char *pcStack_ec;\n  undefined4 *puStack_e8;\n  uint *puStack_e4;\n  uint *puStack_e0;\n  code *pcStack_dc;\n  uint *puStack_d0;\n  char *pcStack_cc;\n  short sStack_b2;\n  undefined2 local_7a;\n  uint uStack_78;\n  undefined2 *local_74;\n  short *local_70;\n  undefined4 *local_6c;\n  undefined4 local_64;\n  undefined2 local_48;\n  undefined2 local_46;\n  undefined2 local_44;\n  undefined1 local_42;\n  byte local_41;\n  short local_30;\n  undefined2 local_2e;\n  int *local_2c;\n  \n  puVar48 = PTR___stack_chk_guard_0015ba2c;\n  puVar32 = (uint *)param_1[3];\n  iVar21 = param_1[1];\n  pcVar39 = (char *)*param_1;\n  local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;\n  local_7a = 0xffff;\n  iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  puVar6 = *(undefined4 **)(iVar36 + 0x10);\n  puVar49 = *(uint **)(iVar36 + 0x44);\n  puVar30 = param_3;\n  pcVar31 = param_4;\n  if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }\n  if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }\n  if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }\n  puVar5 = PTR_LAB_0015b6d8;\n  puVar4 = PTR_LAB_0015b6c0;\n  cVar20 = '\0';\n  pcVar40 = pcVar39;\n  pcVar44 = pcVar43;\n  if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }\n  pcVar43 = unaff_s5;\n  iVar8 = 0;\nLAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }\n  pcVar9 = FUN_000810a8;\n  piVar22 = local_2c;\n  puVar48 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar48 + 0xda984);\n  puStack_e8 = unaff_s6;\n  puStack_e0 = puVar49;\n  piStack_f0 = param_1;\n  pcStack_dc = pcVar9;\n  puStack_e4 = puVar7;\n  pcStack_ec = pcVar43;\n  pcStack_f4 = pcVar44;\n  pcStack_f8 = pcVar40;\n  iStack_fc = iVar36;\n  puStack_100 = puVar32;\n  puVar6 = (undefined4 *)piVar22[1];\n  puVar32 = (uint *)piVar22[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  uVar29 = puVar6[5] + puVar6[3] * 0x30;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  uVar23 = puVar6[5];\n  iStack_104 = *piVar12;\n  pcStack_cc = pcVar31;\n  puStack_d0 = puVar30;\n  puVar30 = (uint *)(uint)(uVar23 < uVar29);\n  iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  iVar36 = *(int *)(iVar21 + 0x28);\n  if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }\n  iVar21 = iStack_104;\n  (**(code **)(puVar48 + 0xda968))();\n  iVar36 = *(int *)(iVar21 + 0x18);\n  iVar21 = FUN_0007bd64(0);\n  if (iVar21 != 0) {\n    return 0;\n  }\n  *(undefined1 *)puVar30 = 0x9e;\n  puVar30[7] = *(uint *)(iVar36 + 8);\n  uVar23 = *(uint *)(iVar36 + 0xc);\n  puVar30[0xc] = 0;\n  puVar30[8] = uVar23;\n  return 1;\ncode_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;\n  puVar32[8] = 0;\n  puVar32[10] = 0x10000;\n  *(char **)puVar32[0xc] = pcVar44;\n  *(short *)((int)puVar32 + 0x12) = sStack_b2;\n  if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }\n  if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }\n  *(undefined2 *)((int)puVar32 + 0x16) = 0x2b;\n  uVar16 = (*pcVar11)(puVar7,0x2b);\n  *(undefined2 *)(puVar32 + 5) = uVar16;\n  puVar32[9] = 0x4000;\n  *puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;\n  puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  if (iVar8 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\n  while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }\n  pcVar40 = pcVar40 + 1;\n  iVar8 = *piVar22;\nLAB_00080938:\n  iVar37 = iVar37 + 1;\n  piVar12 = piVar12 + 5;\n  if (iVar8 <= iVar37) goto code_r0x00080948;\n  goto LAB_000808d4;\nLAB_00080b5c:\n  psVar26 = psVar26 + 1;\n  if (psVar27 == psVar26) goto LAB_00080938;\n  if (iVar13 == *psVar26) goto LAB_00080b70;\n  goto LAB_00080b5c;\ncode_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\nLAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  puVar30 = puVar32;\n  pcVar31 = pcVar44;\n  (*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  *(short *)((int)puVar32 + 0x16) = sVar17;\n  if (iVar8 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pcVar31 = (char *)0x0;\n  param_1[5] = 0;\n  puVar30 = puVar49;\n  iVar8 = FUN_0007dec0(param_1,iVar36);\n  if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }\n  if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar20 = cVar20 + '\x01';\n  if (puVar49 == (uint *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar8 = 0;\n  goto LAB_00080a6c;\n}" primitive_type (function_declarator "FUN_00080720(int *param_1,undefined4 param_2,uint *param_3,char *param_4)" identifier (parameter_list "(int *param_1,undefined4 param_2,uint *param_3,char *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  code *pcVar9;\n  code *pcVar10;\n  byte bVar18;\n  char cVar19;\n  char cVar20;\n  code *pcVar11;\n  undefined2 uVar16;\n  short sVar17;\n  int *piVar12;\n  int iVar13;\n  uint uVar14;\n  ushort *puVar15;\n  int iVar21;\n  byte bVar24;\n  int *piVar22;\n  uint uVar23;\n  short sVar28;\n  undefined4 uVar25;\n  short *psVar26;\n  short *psVar27;\n  uint uVar29;\n  uint *puVar30;\n  char *pcVar31;\n  uint *puVar32;\n  uint uVar33;\n  ushort *puVar34;\n  int iVar35;\n  int iVar36;\n  int iVar37;\n  uint uVar38;\n  char *pcVar39;\n  char *pcVar40;\n  uint uVar41;\n  int iVar42;\n  char *pcVar43;\n  char *pcVar44;\n  undefined4 *puVar45;\n  ushort *puVar46;\n  char *unaff_s5;\n  undefined4 *unaff_s6;\n  int iVar47;\n  undefined *puVar48;\n  uint *puVar49;\n  int iStack_364;\n  undefined4 *puStack_360;\n  undefined4 uStack_35c;\n  int iStack_358;\n  ushort *puStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_348;\n  undefined4 uStack_344;\n  uint uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  ushort auStack_310 [4];\n  uint auStack_308 [12];\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  undefined4 uStack_2a0;\n  undefined4 *puStack_29c;\n  undefined1 uStack_298;\n  undefined4 uStack_294;\n  uint uStack_28c;\n  int iStack_104;\n  uint *puStack_100;\n  int iStack_fc;\n  char *pcStack_f8;\n  char *pcStack_f4;\n  int *piStack_f0;\n  char *pcStack_ec;\n  undefined4 *puStack_e8;\n  uint *puStack_e4;\n  uint *puStack_e0;\n  code *pcStack_dc;\n  uint *puStack_d0;\n  char *pcStack_cc;\n  short sStack_b2;\n  undefined2 local_7a;\n  uint uStack_78;\n  undefined2 *local_74;\n  short *local_70;\n  undefined4 *local_6c;\n  undefined4 local_64;\n  undefined2 local_48;\n  undefined2 local_46;\n  undefined2 local_44;\n  undefined1 local_42;\n  byte local_41;\n  short local_30;\n  undefined2 local_2e;\n  int *local_2c;\n  \n  puVar48 = PTR___stack_chk_guard_0015ba2c;\n  puVar32 = (uint *)param_1[3];\n  iVar21 = param_1[1];\n  pcVar39 = (char *)*param_1;\n  local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;\n  local_7a = 0xffff;\n  iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  puVar6 = *(undefined4 **)(iVar36 + 0x10);\n  puVar49 = *(uint **)(iVar36 + 0x44);\n  puVar30 = param_3;\n  pcVar31 = param_4;\n  if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }\n  if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }\n  if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }\n  puVar5 = PTR_LAB_0015b6d8;\n  puVar4 = PTR_LAB_0015b6c0;\n  cVar20 = '\0';\n  pcVar40 = pcVar39;\n  pcVar44 = pcVar43;\n  if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }\n  pcVar43 = unaff_s5;\n  iVar8 = 0;\nLAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }\n  pcVar9 = FUN_000810a8;\n  piVar22 = local_2c;\n  puVar48 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar48 + 0xda984);\n  puStack_e8 = unaff_s6;\n  puStack_e0 = puVar49;\n  piStack_f0 = param_1;\n  pcStack_dc = pcVar9;\n  puStack_e4 = puVar7;\n  pcStack_ec = pcVar43;\n  pcStack_f4 = pcVar44;\n  pcStack_f8 = pcVar40;\n  iStack_fc = iVar36;\n  puStack_100 = puVar32;\n  puVar6 = (undefined4 *)piVar22[1];\n  puVar32 = (uint *)piVar22[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  uVar29 = puVar6[5] + puVar6[3] * 0x30;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  uVar23 = puVar6[5];\n  iStack_104 = *piVar12;\n  pcStack_cc = pcVar31;\n  puStack_d0 = puVar30;\n  puVar30 = (uint *)(uint)(uVar23 < uVar29);\n  iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  iVar36 = *(int *)(iVar21 + 0x28);\n  if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }\n  iVar21 = iStack_104;\n  (**(code **)(puVar48 + 0xda968))();\n  iVar36 = *(int *)(iVar21 + 0x18);\n  iVar21 = FUN_0007bd64(0);\n  if (iVar21 != 0) {\n    return 0;\n  }\n  *(undefined1 *)puVar30 = 0x9e;\n  puVar30[7] = *(uint *)(iVar36 + 8);\n  uVar23 = *(uint *)(iVar36 + 0xc);\n  puVar30[0xc] = 0;\n  puVar30[8] = uVar23;\n  return 1;\ncode_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;\n  puVar32[8] = 0;\n  puVar32[10] = 0x10000;\n  *(char **)puVar32[0xc] = pcVar44;\n  *(short *)((int)puVar32 + 0x12) = sStack_b2;\n  if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }\n  if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }\n  *(undefined2 *)((int)puVar32 + 0x16) = 0x2b;\n  uVar16 = (*pcVar11)(puVar7,0x2b);\n  *(undefined2 *)(puVar32 + 5) = uVar16;\n  puVar32[9] = 0x4000;\n  *puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;\n  puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  if (iVar8 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\n  while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }\n  pcVar40 = pcVar40 + 1;\n  iVar8 = *piVar22;\nLAB_00080938:\n  iVar37 = iVar37 + 1;\n  piVar12 = piVar12 + 5;\n  if (iVar8 <= iVar37) goto code_r0x00080948;\n  goto LAB_000808d4;\nLAB_00080b5c:\n  psVar26 = psVar26 + 1;\n  if (psVar27 == psVar26) goto LAB_00080938;\n  if (iVar13 == *psVar26) goto LAB_00080b70;\n  goto LAB_00080b5c;\ncode_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\nLAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  puVar30 = puVar32;\n  pcVar31 = pcVar44;\n  (*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  *(short *)((int)puVar32 + 0x16) = sVar17;\n  if (iVar8 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pcVar31 = (char *)0x0;\n  param_1[5] = 0;\n  puVar30 = puVar49;\n  iVar8 = FUN_0007dec0(param_1,iVar36);\n  if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }\n  if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar20 = cVar20 + '\x01';\n  if (puVar49 == (uint *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar8 = 0;\n  goto LAB_00080a6c;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "char cVar19;" primitive_type identifier ;) (declaration "char cVar20;" primitive_type identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined2 uVar16;" type_identifier identifier ;) (declaration "short sVar17;" (sized_type_specifier "short" short) identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "ushort *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "short sVar28;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "short *psVar26;" (sized_type_specifier "short" short) (pointer_declarator "*psVar26" * identifier) ;) (declaration "short *psVar27;" (sized_type_specifier "short" short) (pointer_declarator "*psVar27" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uint *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "char *pcVar31;" primitive_type (pointer_declarator "*pcVar31" * identifier) ;) (declaration "uint *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "ushort *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "int iVar37;" primitive_type identifier ;) (declaration "uint uVar38;" type_identifier identifier ;) (declaration "char *pcVar39;" primitive_type (pointer_declarator "*pcVar39" * identifier) ;) (declaration "char *pcVar40;" primitive_type (pointer_declarator "*pcVar40" * identifier) ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "int iVar42;" primitive_type identifier ;) (declaration "char *pcVar43;" primitive_type (pointer_declarator "*pcVar43" * identifier) ;) (declaration "char *pcVar44;" primitive_type (pointer_declarator "*pcVar44" * identifier) ;) (declaration "undefined4 *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "ushort *puVar46;" type_identifier (pointer_declarator "*puVar46" * identifier) ;) (declaration "char *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined4 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar47;" primitive_type identifier ;) (declaration "undefined *puVar48;" type_identifier (pointer_declarator "*puVar48" * identifier) ;) (declaration "uint *puVar49;" type_identifier (pointer_declarator "*puVar49" * identifier) ;) (declaration "int iStack_364;" primitive_type identifier ;) (declaration "undefined4 *puStack_360;" type_identifier (pointer_declarator "*puStack_360" * identifier) ;) (declaration "undefined4 uStack_35c;" type_identifier identifier ;) (declaration "int iStack_358;" primitive_type identifier ;) (declaration "ushort *puStack_354;" type_identifier (pointer_declarator "*puStack_354" * identifier) ;) (declaration "int iStack_350;" primitive_type identifier ;) (declaration "int iStack_34c;" primitive_type identifier ;) (declaration "uint uStack_348;" type_identifier identifier ;) (declaration "undefined4 uStack_344;" type_identifier identifier ;) (declaration "uint uStack_340;" type_identifier identifier ;) (declaration "undefined4 uStack_33c;" type_identifier identifier ;) (declaration "undefined4 uStack_338;" type_identifier identifier ;) (declaration "undefined4 uStack_334;" type_identifier identifier ;) (declaration "undefined4 uStack_330;" type_identifier identifier ;) (declaration "undefined4 uStack_32c;" type_identifier identifier ;) (declaration "undefined4 uStack_328;" type_identifier identifier ;) (declaration "undefined4 uStack_324;" type_identifier identifier ;) (declaration "undefined4 uStack_320;" type_identifier identifier ;) (declaration "undefined4 uStack_31c;" type_identifier identifier ;) (declaration "undefined4 uStack_318;" type_identifier identifier ;) (declaration "undefined4 uStack_314;" type_identifier identifier ;) (declaration "ushort auStack_310 [4];" type_identifier (array_declarator "auStack_310 [4]" identifier [ number_literal ]) ;) (declaration "uint auStack_308 [12];" type_identifier (array_declarator "auStack_308 [12]" identifier [ number_literal ]) ;) (declaration "ushort auStack_2d8 [4];" type_identifier (array_declarator "auStack_2d8 [4]" identifier [ number_literal ]) ;) (declaration "uint auStack_2d0 [2];" type_identifier (array_declarator "auStack_2d0 [2]" identifier [ number_literal ]) ;) (declaration "ushort auStack_2c8 [20];" type_identifier (array_declarator "auStack_2c8 [20]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_2a0;" type_identifier identifier ;) (declaration "undefined4 *puStack_29c;" type_identifier (pointer_declarator "*puStack_29c" * identifier) ;) (declaration "undefined1 uStack_298;" type_identifier identifier ;) (declaration "undefined4 uStack_294;" type_identifier identifier ;) (declaration "uint uStack_28c;" type_identifier identifier ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "uint *puStack_100;" type_identifier (pointer_declarator "*puStack_100" * identifier) ;) (declaration "int iStack_fc;" primitive_type identifier ;) (declaration "char *pcStack_f8;" primitive_type (pointer_declarator "*pcStack_f8" * identifier) ;) (declaration "char *pcStack_f4;" primitive_type (pointer_declarator "*pcStack_f4" * identifier) ;) (declaration "int *piStack_f0;" primitive_type (pointer_declarator "*piStack_f0" * identifier) ;) (declaration "char *pcStack_ec;" primitive_type (pointer_declarator "*pcStack_ec" * identifier) ;) (declaration "undefined4 *puStack_e8;" type_identifier (pointer_declarator "*puStack_e8" * identifier) ;) (declaration "uint *puStack_e4;" type_identifier (pointer_declarator "*puStack_e4" * identifier) ;) (declaration "uint *puStack_e0;" type_identifier (pointer_declarator "*puStack_e0" * identifier) ;) (declaration "code *pcStack_dc;" type_identifier (pointer_declarator "*pcStack_dc" * identifier) ;) (declaration "uint *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "char *pcStack_cc;" primitive_type (pointer_declarator "*pcStack_cc" * identifier) ;) (declaration "short sStack_b2;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined2 local_7a;" type_identifier identifier ;) (declaration "uint uStack_78;" type_identifier identifier ;) (declaration "undefined2 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "short *local_70;" (sized_type_specifier "short" short) (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined4 *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined2 local_48;" type_identifier identifier ;) (declaration "undefined2 local_46;" type_identifier identifier ;) (declaration "undefined2 local_44;" type_identifier identifier ;) (declaration "undefined1 local_42;" type_identifier identifier ;) (declaration "byte local_41;" type_identifier identifier ;) (declaration "short local_30;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined2 local_2e;" type_identifier identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar48 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar48 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "puVar32 = (uint *)param_1[3];" (assignment_expression "puVar32 = (uint *)param_1[3]" identifier = (cast_expression "(uint *)param_1[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar21 = param_1[1];" (assignment_expression "iVar21 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar39 = (char *)*param_1;" (assignment_expression "pcVar39 = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int **)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int **)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int **)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_7a = 0xffff;" (assignment_expression "local_7a = 0xffff" identifier = number_literal) ;) (expression_statement "iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;" (assignment_expression "iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" identifier = (binary_expression "*(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "*(int *)(pcVar39 + 4) + 8" (pointer_expression "*(int *)(pcVar39 + 4)" * (cast_expression "(int *)(pcVar39 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 4)" ( (binary_expression "pcVar39 + 4" identifier + number_literal) )))) + number_literal) + (binary_expression "(uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "(uint)*(byte *)(puVar32 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(puVar32 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "puVar6 = *(undefined4 **)(iVar36 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(iVar36 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar36 + 0x10)" * (cast_expression "(undefined4 **)(iVar36 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + 0x10)" ( (binary_expression "iVar36 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar49 = *(uint **)(iVar36 + 0x44);" (assignment_expression "puVar49 = *(uint **)(iVar36 + 0x44)" identifier = (pointer_expression "*(uint **)(iVar36 + 0x44)" * (cast_expression "(uint **)(iVar36 + 0x44)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + 0x44)" ( (binary_expression "iVar36 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = param_3;" (assignment_expression "puVar30 = param_3" identifier = identifier) ;) (expression_statement "pcVar31 = param_4;" (assignment_expression "pcVar31 = param_4" identifier = identifier) ;) (if_statement "if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }" if (parenthesized_expression "(puVar49 == (uint *)0x0)" ( (binary_expression "puVar49 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }" { (if_statement "if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }" if (parenthesized_expression "((puVar6[9] & 0x20) == 0)" ( (binary_expression "(puVar6[9] & 0x20) == 0" (parenthesized_expression "(puVar6[9] & 0x20)" ( (binary_expression "puVar6[9] & 0x20" (subscript_expression "puVar6[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }" { (expression_statement "puVar49 = &uStack_78;" (assignment_expression "puVar49 = &uStack_78" identifier = (pointer_expression "&uStack_78" & identifier)) ;) (expression_statement "puVar30 = (uint *)0x48;" (assignment_expression "puVar30 = (uint *)0x48" identifier = (cast_expression "(uint *)0x48" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_memset_0015b9b4)(puVar49,0);" (call_expression "(*(code *)PTR_memset_0015b9b4)(puVar49,0)" (parenthesized_expression "(*(code *)PTR_memset_0015b9b4)" ( (pointer_expression "*(code *)PTR_memset_0015b9b4" * (cast_expression "(code *)PTR_memset_0015b9b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar49,0)" ( identifier , number_literal ))) ;) (expression_statement "local_46 = 1;" (assignment_expression "local_46 = 1" identifier = number_literal) ;) (expression_statement "local_44 = 1;" (assignment_expression "local_44 = 1" identifier = number_literal) ;) (expression_statement "local_6c = puVar6;" (assignment_expression "local_6c = puVar6" identifier = identifier) ;) (expression_statement "local_42 = 5;" (assignment_expression "local_42 = 5" identifier = number_literal) ;) (expression_statement "local_2e = 0;" (assignment_expression "local_2e = 0" identifier = number_literal) ;) (expression_statement "local_41 = local_41 & 0x3f | 0xc0;" (assignment_expression "local_41 = local_41 & 0x3f | 0xc0" identifier = (binary_expression "local_41 & 0x3f | 0xc0" (binary_expression "local_41 & 0x3f" identifier & number_literal) | number_literal)) ;) (expression_statement "local_48 = *(undefined2 *)((int)puVar6 + 0x2e);" (assignment_expression "local_48 = *(undefined2 *)((int)puVar6 + 0x2e)" identifier = (pointer_expression "*(undefined2 *)((int)puVar6 + 0x2e)" * (cast_expression "(undefined2 *)((int)puVar6 + 0x2e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_74 = &local_7a;" (assignment_expression "local_74 = &local_7a" identifier = (pointer_expression "&local_7a" & identifier)) ;) (expression_statement "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);" (assignment_expression "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb)" identifier = (cast_expression "(char *)(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar6 + 0xb)" * (cast_expression "(short *)(puVar6 + 0xb)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xb)" ( (binary_expression "puVar6 + 0xb" identifier + number_literal) ))))))) ;) (expression_statement "local_70 = &local_30;" (assignment_expression "local_70 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "local_30 = *(short *)(puVar6 + 0xb);" (assignment_expression "local_30 = *(short *)(puVar6 + 0xb)" identifier = (pointer_expression "*(short *)(puVar6 + 0xb)" * (cast_expression "(short *)(puVar6 + 0xb)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xb)" ( (binary_expression "puVar6 + 0xb" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }" if (parenthesized_expression "(-1 < *(char *)(iVar36 + 0x25))" ( (binary_expression "-1 < *(char *)(iVar36 + 0x25)" number_literal < (pointer_expression "*(char *)(iVar36 + 0x25)" * (cast_expression "(char *)(iVar36 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x25)" ( (binary_expression "iVar36 + 0x25" identifier + number_literal) ))))) )) (compound_statement "{\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }" { (expression_statement "local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);" (assignment_expression "local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(iVar36 + 0x10) + 8)" * (cast_expression "(undefined4 *)(*(int *)(iVar36 + 0x10) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar36 + 0x10) + 8)" ( (binary_expression "*(int *)(iVar36 + 0x10) + 8" (pointer_expression "*(int *)(iVar36 + 0x10)" * (cast_expression "(int *)(iVar36 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x10)" ( (binary_expression "iVar36 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) })) }) (else_clause "else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }" else (compound_statement "{\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }" { (expression_statement "puVar49 = (uint *)puVar6[2];" (assignment_expression "puVar49 = (uint *)puVar6[2]" identifier = (cast_expression "(uint *)puVar6[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);" (assignment_expression "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb)" identifier = (cast_expression "(char *)(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar6 + 0xb)" * (cast_expression "(short *)(puVar6 + 0xb)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xb)" ( (binary_expression "puVar6 + 0xb" identifier + number_literal) ))))))) ;) }))) }) (else_clause "else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }" else (compound_statement "{\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }" { (expression_statement "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);" (assignment_expression "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb)" identifier = (cast_expression "(char *)(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar6 + 0xb)" * (cast_expression "(short *)(puVar6 + 0xb)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xb)" ( (binary_expression "puVar6 + 0xb" identifier + number_literal) ))))))) ;) }))) (if_statement "if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }" if (parenthesized_expression "((int)pcVar43 < 0xb)" ( (binary_expression "(int)pcVar43 < 0xb" (cast_expression "(int)pcVar43" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }" { (expression_statement "iVar8 = param_1[4];" (assignment_expression "iVar8 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "puVar7 = (uint *)0x0;" (assignment_expression "puVar7 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }" else (compound_statement "{\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }" { (expression_statement "puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);" (assignment_expression "puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + 0x5c64)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + 0x5c64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + 0x5c64)" ( (binary_expression "PTR_LAB_0015b6c0 + 0x5c64" identifier + number_literal) )))) )) (argument_list "(pcVar43)" ( identifier ))))) ;) (expression_statement "iVar8 = param_1[4];" (assignment_expression "iVar8 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) }))) (if_statement "if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }" if (parenthesized_expression "((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0))" ( (binary_expression "(((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)" (parenthesized_expression "(((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0))" ( (binary_expression "((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)" (parenthesized_expression "((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25)))))" ( (binary_expression "(((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))" (parenthesized_expression "(((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0))" ( (binary_expression "((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)" (parenthesized_expression "((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0))" ( (binary_expression "(iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(pcVar39 + 0x2c) & 0x20)" ( (binary_expression "*(ushort *)(pcVar39 + 0x2c) & 0x20" (pointer_expression "*(ushort *)(pcVar39 + 0x2c)" * (cast_expression "(ushort *)(pcVar39 + 0x2c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x2c)" ( (binary_expression "pcVar39 + 0x2c" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)" ( (binary_expression "(*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0" (parenthesized_expression "(*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000)" ( (binary_expression "*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000" (pointer_expression "*(uint *)(**(int **)pcVar39 + 0x24)" * (cast_expression "(uint *)(**(int **)pcVar39 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)pcVar39 + 0x24)" ( (binary_expression "**(int **)pcVar39 + 0x24" (pointer_expression "**(int **)pcVar39" * (pointer_expression "*(int **)pcVar39" * (cast_expression "(int **)pcVar39" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))" ( (parenthesized_expression "(*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25)))" ( (binary_expression "*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))" (binary_expression "*(int *)(iVar36 + 0x44) == 0" (pointer_expression "*(int *)(iVar36 + 0x44)" * (cast_expression "(int *)(iVar36 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x44)" ( (binary_expression "iVar36 + 0x44" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(-1 < *(char *)(iVar36 + 0x25))" ( (binary_expression "-1 < *(char *)(iVar36 + 0x25)" number_literal < (pointer_expression "*(char *)(iVar36 + 0x25)" * (cast_expression "(char *)(iVar36 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x25)" ( (binary_expression "iVar36 + 0x25" identifier + number_literal) ))))) ))) )) ))) )) && (parenthesized_expression "((puVar6[9] & 0x20) == 0)" ( (binary_expression "(puVar6[9] & 0x20) == 0" (parenthesized_expression "(puVar6[9] & 0x20)" ( (binary_expression "puVar6[9] & 0x20" (subscript_expression "puVar6[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)" ( (binary_expression "(*(uint *)(iVar36 + 0x24) & 0x140000) == 0" (parenthesized_expression "(*(uint *)(iVar36 + 0x24) & 0x140000)" ( (binary_expression "*(uint *)(iVar36 + 0x24) & 0x140000" (pointer_expression "*(uint *)(iVar36 + 0x24)" * (cast_expression "(uint *)(iVar36 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x24)" ( (binary_expression "iVar36 + 0x24" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }" { (expression_statement "sStack_b2 = (short)puVar7 + (short)pcVar43;" (assignment_expression "sStack_b2 = (short)puVar7 + (short)pcVar43" identifier = (binary_expression "(short)puVar7 + (short)pcVar43" (cast_expression "(short)puVar7" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + (cast_expression "(short)pcVar43" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier))) ;) (expression_statement "pcVar44 = *(char **)(iVar21 + 0x14);" (assignment_expression "pcVar44 = *(char **)(iVar21 + 0x14)" identifier = (pointer_expression "*(char **)(iVar21 + 0x14)" * (cast_expression "(char **)(iVar21 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5530)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5530)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5530" identifier + number_literal) )))) ;) (expression_statement "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6d8 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + 0x358)" ( (binary_expression "PTR_LAB_0015b6d8 + 0x358" identifier + number_literal) )))) ;) (expression_statement "pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;" (assignment_expression "pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30" identifier = (binary_expression "pcVar44 + *(int *)(iVar21 + 0xc) * 0x30" identifier + (binary_expression "*(int *)(iVar21 + 0xc) * 0x30" (pointer_expression "*(int *)(iVar21 + 0xc)" * (cast_expression "(int *)(iVar21 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0xc)" ( (binary_expression "iVar21 + 0xc" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x51d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x51d8)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x51d8" identifier + number_literal) )))) ;) (expression_statement "unaff_s5 = pcVar44;" (assignment_expression "unaff_s5 = pcVar44" identifier = identifier) ;) (labeled_statement "LAB_00080e28:\n    pcVar43 = pcVar44;" statement_identifier : (expression_statement "pcVar43 = pcVar44;" (assignment_expression "pcVar43 = pcVar44" identifier = identifier) ;)) (expression_statement "pcVar44 = unaff_s5;" (assignment_expression "pcVar44 = unaff_s5" identifier = identifier) ;) (expression_statement "unaff_s6 = puVar6;" (assignment_expression "unaff_s6 = puVar6" identifier = identifier) ;) (if_statement "if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }" if (parenthesized_expression "(unaff_s5 < pcVar40)" ( (binary_expression "unaff_s5 < pcVar40" identifier < identifier) )) (compound_statement "{\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }" { (do_statement "do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );" do (compound_statement "{\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      }" { (expression_statement "puVar30 = (uint *)puVar32[2];" (assignment_expression "puVar30 = (uint *)puVar32[2]" identifier = (cast_expression "(uint *)puVar32[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar43 = pcVar44 + 0x30;" (assignment_expression "pcVar43 = pcVar44 + 0x30" identifier = (binary_expression "pcVar44 + 0x30" identifier + number_literal)) ;) (expression_statement "unaff_s5 = pcVar43;" (assignment_expression "unaff_s5 = pcVar43" identifier = identifier) ;) (if_statement "if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }" if (parenthesized_expression "((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0)" ( (binary_expression "(*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0" (binary_expression "(*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0" (parenthesized_expression "(*(uint *)(pcVar44 + 0x20) & (uint)puVar30)" ( (binary_expression "*(uint *)(pcVar44 + 0x20) & (uint)puVar30" (pointer_expression "*(uint *)(pcVar44 + 0x20)" * (cast_expression "(uint *)(pcVar44 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar44 + 0x20)" ( (binary_expression "pcVar44 + 0x20" identifier + number_literal) )))) & (cast_expression "(uint)puVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) && (binary_expression "(*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0" (parenthesized_expression "(*(uint *)(pcVar44 + 0x24) & puVar32[3])" ( (binary_expression "*(uint *)(pcVar44 + 0x24) & puVar32[3]" (pointer_expression "*(uint *)(pcVar44 + 0x24)" * (cast_expression "(uint *)(pcVar44 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar44 + 0x24)" ( (binary_expression "pcVar44 + 0x24" identifier + number_literal) )))) & (subscript_expression "puVar32[3]" identifier [ number_literal ])) )) == number_literal)) )) (compound_statement "{\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }" { (expression_statement "pcVar31 = (char *)0x0;" (assignment_expression "pcVar31 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar30 = (uint *)0x0;" (assignment_expression "puVar30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = (*pcVar10)(pcVar44,iVar36);" (assignment_expression "iVar8 = (*pcVar10)(pcVar44,iVar36)" identifier = (call_expression "(*pcVar10)(pcVar44,iVar36)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pcVar44,iVar36)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) goto code_r0x00080e78;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00080e78;" goto statement_identifier ;)) })) (expression_statement "pcVar44 = pcVar43;" (assignment_expression "pcVar44 = pcVar43" identifier = identifier) ;) (if_statement "if (pcVar40 <= pcVar43) break;" if (parenthesized_expression "(pcVar40 <= pcVar43)" ( (binary_expression "pcVar40 <= pcVar43" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (expression_statement "puVar5 = PTR_LAB_0015b6d8;" (assignment_expression "puVar5 = PTR_LAB_0015b6d8" identifier = identifier) ;) (expression_statement "puVar4 = PTR_LAB_0015b6c0;" (assignment_expression "puVar4 = PTR_LAB_0015b6c0" identifier = identifier) ;) (expression_statement "cVar20 = '\0';" (assignment_expression "cVar20 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar40 = pcVar39;" (assignment_expression "pcVar40 = pcVar39" identifier = identifier) ;) (expression_statement "pcVar44 = pcVar43;" (assignment_expression "pcVar44 = pcVar43" identifier = identifier) ;) (if_statement "if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }" if (parenthesized_expression "(puVar49 != (uint *)0x0)" ( (binary_expression "puVar49 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }" { (expression_statement "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x51d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x51d8)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x51d8" identifier + number_literal) )))) ;) (expression_statement "pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x2b38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x2b38)" ( (binary_expression "PTR_LAB_0015b714 + -0x2b38" identifier + number_literal) )))) ;) (expression_statement "pcVar43 = unaff_s5;" (assignment_expression "pcVar43 = unaff_s5" identifier = identifier) ;) (labeled_statement "LAB_0008081c:\n    puVar30 = (uint *)puVar49[9];" statement_identifier : (expression_statement "puVar30 = (uint *)puVar49[9];" (assignment_expression "puVar30 = (uint *)puVar49[9]" identifier = (cast_expression "(uint *)puVar49[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar49[9]" identifier [ number_literal ]))) ;)) (if_statement "if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }" if (parenthesized_expression "(((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe)))" ( (binary_expression "((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))" (parenthesized_expression "((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0))" ( (binary_expression "(puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)" (parenthesized_expression "(puVar30 == (uint *)0x0)" ( (binary_expression "puVar30 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)" ( (comma_expression "iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0" (assignment_expression "iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21)" identifier = (call_expression "FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21)" identifier (argument_list "(*(undefined4 *)(iVar36 + 0x28),iVar21)" ( (pointer_expression "*(undefined4 *)(iVar36 + 0x28)" * (cast_expression "(undefined4 *)(iVar36 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x28)" ( (binary_expression "iVar36 + 0x28" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(-1 < *(char *)(puVar49 + 0xe))" ( (binary_expression "-1 < *(char *)(puVar49 + 0xe)" number_literal < (pointer_expression "*(char *)(puVar49 + 0xe)" * (cast_expression "(char *)(puVar49 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0xe)" ( (binary_expression "puVar49 + 0xe" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }" { (expression_statement "sVar17 = *(short *)puVar49[2];" (assignment_expression "sVar17 = *(short *)puVar49[2]" identifier = (pointer_expression "*(short *)puVar49[2]" * (cast_expression "(short *)puVar49[2]" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar49[2]" identifier [ number_literal ])))) ;) (expression_statement "pcVar44 = (char *)(int)sVar17;" (assignment_expression "pcVar44 = (char *)(int)sVar17" identifier = (cast_expression "(char *)(int)sVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar32[6] = 0;" (assignment_expression "puVar32[6] = 0" (subscript_expression "puVar32[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar32 + 7) = 0;" (assignment_expression "*(undefined2 *)(puVar32 + 7) = 0" (pointer_expression "*(undefined2 *)(puVar32 + 7)" * (cast_expression "(undefined2 *)(puVar32 + 7)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 7)" ( (binary_expression "puVar32 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar32 = (uint)param_3;" (assignment_expression "*puVar32 = (uint)param_3" (pointer_expression "*puVar32" * identifier) = (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar32[10] = 0;" (assignment_expression "puVar32[10] = 0" (subscript_expression "puVar32[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)((int)puVar32 + 0x16) = sVar17;" (assignment_expression "*(short *)((int)puVar32 + 0x16) = sVar17" (pointer_expression "*(short *)((int)puVar32 + 0x16)" * (cast_expression "(short *)((int)puVar32 + 0x16)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x16)" ( (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar32[8] = (uint)puVar49;" (assignment_expression "puVar32[8] = (uint)puVar49" (subscript_expression "puVar32[8]" identifier [ number_literal ]) = (cast_expression "(uint)puVar49" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar32[1] = (uint)param_4;" (assignment_expression "puVar32[1] = (uint)param_4" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar18 = *(byte *)((int)puVar49 + 0x37);" (assignment_expression "bVar18 = *(byte *)((int)puVar49 + 0x37)" identifier = (pointer_expression "*(byte *)((int)puVar49 + 0x37)" * (cast_expression "(byte *)((int)puVar49 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x37)" ( (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar24 = bVar18 & 0x20;" (assignment_expression "bVar24 = bVar18 & 0x20" identifier = (binary_expression "bVar18 & 0x20" identifier & number_literal)) ;) (if_statement "if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }" if (parenthesized_expression "((bVar18 & 0x20) == 0)" ( (binary_expression "(bVar18 & 0x20) == 0" (parenthesized_expression "(bVar18 & 0x20)" ( (binary_expression "bVar18 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }" { (expression_statement "piVar22 = *(int **)(*param_1 + 8);" (assignment_expression "piVar22 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }" if (parenthesized_expression "((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8))" ( (binary_expression "(piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)" (parenthesized_expression "(piVar22 != (int *)0x0)" ( (binary_expression "piVar22 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar8 = *piVar22, 0 < iVar8)" ( (comma_expression "iVar8 = *piVar22, 0 < iVar8" (assignment_expression "iVar8 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) , (binary_expression "0 < iVar8" number_literal < identifier)) ))) )) (compound_statement "{\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }" { (expression_statement "unaff_s6 = *(undefined4 **)(iVar36 + 0x28);" (assignment_expression "unaff_s6 = *(undefined4 **)(iVar36 + 0x28)" identifier = (pointer_expression "*(undefined4 **)(iVar36 + 0x28)" * (cast_expression "(undefined4 **)(iVar36 + 0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + 0x28)" ( (binary_expression "iVar36 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = piVar22 + 1;" (assignment_expression "piVar12 = piVar22 + 1" identifier = (binary_expression "piVar22 + 1" identifier + number_literal)) ;) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }" statement_identifier : (for_statement "for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }" for ( (assignment_expression "pcVar43 = (char *)*piVar12" identifier = (cast_expression "(char *)*piVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ; (binary_expression "pcVar43 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pcVar43 = *(char **)(pcVar43 + 0xc)" identifier = (pointer_expression "*(char **)(pcVar43 + 0xc)" * (cast_expression "(char **)(pcVar43 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar43 + 0xc)" ( (binary_expression "pcVar43 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }" { (while_statement "while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }" { (if_statement "if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }" if (parenthesized_expression "((*(uint *)(pcVar43 + 4) & 0x1000) == 0)" ( (binary_expression "(*(uint *)(pcVar43 + 4) & 0x1000) == 0" (parenthesized_expression "(*(uint *)(pcVar43 + 4) & 0x1000)" ( (binary_expression "*(uint *)(pcVar43 + 4) & 0x1000" (pointer_expression "*(uint *)(pcVar43 + 4)" * (cast_expression "(uint *)(pcVar43 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar43 + 4)" ( (binary_expression "pcVar43 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }" { (expression_statement "puVar7 = puVar49;" (assignment_expression "puVar7 = puVar49" identifier = identifier) ;) (if_statement "if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }" if (parenthesized_expression "((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c)))" ( (binary_expression "(*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))" (parenthesized_expression "(*pcVar43 != -0x62)" ( (binary_expression "*pcVar43 != -0x62" (pointer_expression "*pcVar43" * identifier) != number_literal) )) || (parenthesized_expression "(unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))" ( (binary_expression "unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c)" identifier != (pointer_expression "*(undefined4 **)(pcVar43 + 0x1c)" * (cast_expression "(undefined4 **)(pcVar43 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar43 + 0x1c)" ( (binary_expression "pcVar43 + 0x1c" identifier + number_literal) ))))) ))) )) (compound_statement "{\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }" { (if_statement "if (puVar49[10] == 0) goto LAB_00080938;" if (parenthesized_expression "(puVar49[10] == 0)" ( (binary_expression "puVar49[10] == 0" (subscript_expression "puVar49[10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00080938;" goto statement_identifier ;)) (expression_statement "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);" (assignment_expression "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32)" identifier = (binary_expression "(uint)*(ushort *)((int)puVar49 + 0x32)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)puVar49 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x32)" ( (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar45 = (undefined4 *)(puVar49[10] + 4);" (assignment_expression "puVar45 = (undefined4 *)(puVar49[10] + 4)" identifier = (cast_expression "(undefined4 *)(puVar49[10] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49[10] + 4)" ( (binary_expression "puVar49[10] + 4" (subscript_expression "puVar49[10]" identifier [ number_literal ]) + number_literal) )))) ;) (if_statement "if (uVar23 == 0) goto LAB_00080938;" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00080938;" goto statement_identifier ;)) (expression_statement "pcVar31 = (char *)0x0;" (assignment_expression "pcVar31 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00080ad0;" goto statement_identifier ;) })) (expression_statement "iVar13 = *(int *)(pcVar43 + 0x20);" (assignment_expression "iVar13 = *(int *)(pcVar43 + 0x20)" identifier = (pointer_expression "*(int *)(pcVar43 + 0x20)" * (cast_expression "(int *)(pcVar43 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar43 + 0x20)" ( (binary_expression "pcVar43 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 < 0) goto LAB_00080b70;" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (if_statement "if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;" if (parenthesized_expression "(*(ushort *)((int)puVar49 + 0x32) == 0)" ( (binary_expression "*(ushort *)((int)puVar49 + 0x32) == 0" (pointer_expression "*(ushort *)((int)puVar49 + 0x32)" * (cast_expression "(ushort *)((int)puVar49 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x32)" ( (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00080938;" goto statement_identifier ;)) (expression_statement "psVar26 = (short *)puVar49[1];" (assignment_expression "psVar26 = (short *)puVar49[1]" identifier = (cast_expression "(short *)puVar49[1]" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar49[1]" identifier [ number_literal ]))) ;) (if_statement "if (iVar13 == *psVar26) goto LAB_00080b70;" if (parenthesized_expression "(iVar13 == *psVar26)" ( (binary_expression "iVar13 == *psVar26" identifier == (pointer_expression "*psVar26" * identifier)) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (expression_statement "psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);" (assignment_expression "psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32)" identifier = (binary_expression "psVar26 + *(ushort *)((int)puVar49 + 0x32)" identifier + (pointer_expression "*(ushort *)((int)puVar49 + 0x32)" * (cast_expression "(ushort *)((int)puVar49 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x32)" ( (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (goto_statement "goto LAB_00080b5c;" goto statement_identifier ;) })) (if_statement "if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;" if (parenthesized_expression "((*(uint *)(pcVar43 + 4) & 0x40000) == 0)" ( (binary_expression "(*(uint *)(pcVar43 + 4) & 0x40000) == 0" (parenthesized_expression "(*(uint *)(pcVar43 + 4) & 0x40000)" ( (binary_expression "*(uint *)(pcVar43 + 4) & 0x40000" (pointer_expression "*(uint *)(pcVar43 + 4)" * (cast_expression "(uint *)(pcVar43 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar43 + 4)" ( (binary_expression "pcVar43 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);" (assignment_expression "pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4)" identifier = (pointer_expression "*(char **)(*(int *)(pcVar43 + 0x14) + 4)" * (cast_expression "(char **)(*(int *)(pcVar43 + 0x14) + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar43 + 0x14) + 4)" ( (binary_expression "*(int *)(pcVar43 + 0x14) + 4" (pointer_expression "*(int *)(pcVar43 + 0x14)" * (cast_expression "(int *)(pcVar43 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar43 + 0x14)" ( (binary_expression "pcVar43 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (pcVar43 == (char *)0x0) goto LAB_0008090c;" if (parenthesized_expression "(pcVar43 == (char *)0x0)" ( (binary_expression "pcVar43 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008090c;" goto statement_identifier ;)) })) }))) (labeled_statement "LAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);" statement_identifier : comment (expression_statement "pcVar9 = (code *)trap(0);" (assignment_expression "pcVar9 = (code *)trap(0)" identifier = (cast_expression "(code *)trap(0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "trap(0)" identifier (argument_list "(0)" ( number_literal ))))) ;)) (expression_statement "(*pcVar9)();" (call_expression "(*pcVar9)()" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0008095c;" goto statement_identifier ;) })) (if_statement "if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }" if (parenthesized_expression "((bVar18 & 0xc0) == 0xc0)" ( (binary_expression "(bVar18 & 0xc0) == 0xc0" (parenthesized_expression "(bVar18 & 0xc0)" ( (binary_expression "bVar18 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }" { (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar32[9] = 0x100;" (assignment_expression "puVar32[9] = 0x100" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00080c28;" goto statement_identifier ;) })) (goto_statement "goto LAB_0008096c;" goto statement_identifier ;) })) (expression_statement "unaff_s5 = pcVar43;" (assignment_expression "unaff_s5 = pcVar43" identifier = identifier) ;) (if_statement "if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }" if (parenthesized_expression "(*(int *)(iVar36 + 0x44) == 0)" ( (binary_expression "*(int *)(iVar36 + 0x44) == 0" (pointer_expression "*(int *)(iVar36 + 0x44)" * (cast_expression "(int *)(iVar36 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x44)" ( (binary_expression "iVar36 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }" { (expression_statement "puVar49 = (uint *)puVar49[5];" (assignment_expression "puVar49 = (uint *)puVar49[5]" identifier = (cast_expression "(uint *)puVar49[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar49[5]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00080bf4;" goto statement_identifier ;) })) })) (expression_statement "pcVar43 = unaff_s5;" (assignment_expression "pcVar43 = unaff_s5" identifier = identifier) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }" statement_identifier : (if_statement "if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }" if (parenthesized_expression "(local_2c == *(int **)puVar48)" ( (binary_expression "local_2c == *(int **)puVar48" identifier == (pointer_expression "*(int **)puVar48" * (cast_expression "(int **)puVar48" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) }))) (expression_statement "pcVar9 = FUN_000810a8;" (assignment_expression "pcVar9 = FUN_000810a8" identifier = identifier) ;) (expression_statement "piVar22 = local_2c;" (assignment_expression "piVar22 = local_2c" identifier = identifier) ;) (expression_statement "puVar48 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar48 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar12 = *(int **)(puVar48 + 0xda984);" (assignment_expression "piVar12 = *(int **)(puVar48 + 0xda984)" identifier = (pointer_expression "*(int **)(puVar48 + 0xda984)" * (cast_expression "(int **)(puVar48 + 0xda984)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + 0xda984)" ( (binary_expression "puVar48 + 0xda984" identifier + number_literal) ))))) ;) (expression_statement "puStack_e8 = unaff_s6;" (assignment_expression "puStack_e8 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_e0 = puVar49;" (assignment_expression "puStack_e0 = puVar49" identifier = identifier) ;) (expression_statement "piStack_f0 = param_1;" (assignment_expression "piStack_f0 = param_1" identifier = identifier) ;) (expression_statement "pcStack_dc = pcVar9;" (assignment_expression "pcStack_dc = pcVar9" identifier = identifier) ;) (expression_statement "puStack_e4 = puVar7;" (assignment_expression "puStack_e4 = puVar7" identifier = identifier) ;) (expression_statement "pcStack_ec = pcVar43;" (assignment_expression "pcStack_ec = pcVar43" identifier = identifier) ;) (expression_statement "pcStack_f4 = pcVar44;" (assignment_expression "pcStack_f4 = pcVar44" identifier = identifier) ;) (expression_statement "pcStack_f8 = pcVar40;" (assignment_expression "pcStack_f8 = pcVar40" identifier = identifier) ;) (expression_statement "iStack_fc = iVar36;" (assignment_expression "iStack_fc = iVar36" identifier = identifier) ;) (expression_statement "puStack_100 = puVar32;" (assignment_expression "puStack_100 = puVar32" identifier = identifier) ;) (expression_statement "puVar6 = (undefined4 *)piVar22[1];" (assignment_expression "puVar6 = (undefined4 *)piVar22[1]" identifier = (cast_expression "(undefined4 *)piVar22[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar32 = (uint *)piVar22[3];" (assignment_expression "puVar32 = (uint *)piVar22[3]" identifier = (cast_expression "(uint *)piVar22[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[3]" identifier [ number_literal ]))) ;) (expression_statement "uStack_348 = 0;" (assignment_expression "uStack_348 = 0" identifier = number_literal) ;) (expression_statement "uStack_344 = 0;" (assignment_expression "uStack_344 = 0" identifier = number_literal) ;) (expression_statement "uStack_340 = 0;" (assignment_expression "uStack_340 = 0" identifier = number_literal) ;) (expression_statement "uStack_33c = 0;" (assignment_expression "uStack_33c = 0" identifier = number_literal) ;) (expression_statement "uStack_338 = 0;" (assignment_expression "uStack_338 = 0" identifier = number_literal) ;) (expression_statement "uStack_334 = 0;" (assignment_expression "uStack_334 = 0" identifier = number_literal) ;) (expression_statement "uStack_330 = 0;" (assignment_expression "uStack_330 = 0" identifier = number_literal) ;) (expression_statement "uVar29 = puVar6[5] + puVar6[3] * 0x30;" (assignment_expression "uVar29 = puVar6[5] + puVar6[3] * 0x30" identifier = (binary_expression "puVar6[5] + puVar6[3] * 0x30" (subscript_expression "puVar6[5]" identifier [ number_literal ]) + (binary_expression "puVar6[3] * 0x30" (subscript_expression "puVar6[3]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "uStack_32c = 0;" (assignment_expression "uStack_32c = 0" identifier = number_literal) ;) (expression_statement "uStack_328 = 0;" (assignment_expression "uStack_328 = 0" identifier = number_literal) ;) (expression_statement "uStack_324 = 0;" (assignment_expression "uStack_324 = 0" identifier = number_literal) ;) (expression_statement "uStack_320 = 0;" (assignment_expression "uStack_320 = 0" identifier = number_literal) ;) (expression_statement "uStack_31c = 0;" (assignment_expression "uStack_31c = 0" identifier = number_literal) ;) (expression_statement "uStack_318 = 0;" (assignment_expression "uStack_318 = 0" identifier = number_literal) ;) (expression_statement "uStack_314 = 0;" (assignment_expression "uStack_314 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = puVar6[5];" (assignment_expression "uVar23 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "iStack_104 = *piVar12;" (assignment_expression "iStack_104 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcStack_cc = pcVar31;" (assignment_expression "pcStack_cc = pcVar31" identifier = identifier) ;) (expression_statement "puStack_d0 = puVar30;" (assignment_expression "puStack_d0 = puVar30" identifier = identifier) ;) (expression_statement "puVar30 = (uint *)(uint)(uVar23 < uVar29);" (assignment_expression "puVar30 = (uint *)(uint)(uVar23 < uVar29)" identifier = (cast_expression "(uint *)(uint)(uVar23 < uVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar23 < uVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar23 < uVar29)" ( (binary_expression "uVar23 < uVar29" identifier < identifier) ))))) ;) (expression_statement "iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;" (assignment_expression "iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" identifier = (binary_expression "*(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "*(int *)(*piVar22 + 4) + 8" (pointer_expression "*(int *)(*piVar22 + 4)" * (cast_expression "(int *)(*piVar22 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + 4)" ( (binary_expression "*piVar22 + 4" (pointer_expression "*piVar22" * identifier) + number_literal) )))) + number_literal) + (binary_expression "(uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "(uint)*(byte *)(puVar32 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(puVar32 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar36 = *(int *)(iVar21 + 0x28);" (assignment_expression "iVar36 = *(int *)(iVar21 + 0x28)" identifier = (pointer_expression "*(int *)(iVar21 + 0x28)" * (cast_expression "(int *)(iVar21 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x28)" ( (binary_expression "iVar21 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }" if (parenthesized_expression "(puVar30 == (uint *)0x0)" ( (binary_expression "puVar30 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00081208:\n    iVar47 = 0;\n  }" { (labeled_statement "LAB_00081208:\n    iVar47 = 0;" statement_identifier : (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }" else (compound_statement "{\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }" { (expression_statement "iVar8 = *(int *)(puVar48 + 0xda5b4);" (assignment_expression "iVar8 = *(int *)(puVar48 + 0xda5b4)" identifier = (pointer_expression "*(int *)(puVar48 + 0xda5b4)" * (cast_expression "(int *)(puVar48 + 0xda5b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + 0xda5b4)" ( (binary_expression "puVar48 + 0xda5b4" identifier + number_literal) ))))) ;) (expression_statement "iVar37 = *(int *)(puVar48 + 0xda630);" (assignment_expression "iVar37 = *(int *)(puVar48 + 0xda630)" identifier = (pointer_expression "*(int *)(puVar48 + 0xda630)" * (cast_expression "(int *)(puVar48 + 0xda630)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + 0xda630)" ( (binary_expression "puVar48 + 0xda630" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(puVar48 + 0xda66c);" (assignment_expression "iVar13 = *(int *)(puVar48 + 0xda66c)" identifier = (pointer_expression "*(int *)(puVar48 + 0xda66c)" * (cast_expression "(int *)(puVar48 + 0xda66c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + 0xda66c)" ( (binary_expression "puVar48 + 0xda66c" identifier + number_literal) ))))) ;) (do_statement "do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);" do (compound_statement "{\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    }" { (while_statement "while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }" while (parenthesized_expression "(((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0)))" ( (parenthesized_expression "((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))" ( (binary_expression "(*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0)" (binary_expression "(*(ushort *)(uVar23 + 0xc) & 0x200) == 0" (parenthesized_expression "(*(ushort *)(uVar23 + 0xc) & 0x200)" ( (binary_expression "*(ushort *)(uVar23 + 0xc) & 0x200" (pointer_expression "*(ushort *)(uVar23 + 0xc)" * (cast_expression "(ushort *)(uVar23 + 0xc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar23 + 0xc)" ( (binary_expression "uVar23 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "(puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0)" ( (comma_expression "puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0" (assignment_expression "puVar30 = *(uint **)(uVar23 + 0x1c)" identifier = (pointer_expression "*(uint **)(uVar23 + 0x1c)" * (cast_expression "(uint **)(uVar23 + 0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar23 + 0x1c)" ( (binary_expression "uVar23 + 0x1c" identifier + number_literal) ))))) , (binary_expression "(puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0" (binary_expression "(puVar30[0x66] & puVar32[2]) == 0" (parenthesized_expression "(puVar30[0x66] & puVar32[2])" ( (binary_expression "puVar30[0x66] & puVar32[2]" (subscript_expression "puVar30[0x66]" identifier [ number_literal ]) & (subscript_expression "puVar32[2]" identifier [ number_literal ])) )) == number_literal) && (binary_expression "(puVar30[0x67] & puVar32[3]) == 0" (parenthesized_expression "(puVar30[0x67] & puVar32[3])" ( (binary_expression "puVar30[0x67] & puVar32[3]" (subscript_expression "puVar30[0x67]" identifier [ number_literal ]) & (subscript_expression "puVar32[3]" identifier [ number_literal ])) )) == number_literal))) ))) )) )) (compound_statement "{\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }" { (expression_statement "uVar23 = uVar23 + 0x30;" (assignment_expression "uVar23 = uVar23 + 0x30" identifier = (binary_expression "uVar23 + 0x30" identifier + number_literal)) ;) (if_statement "if (uVar29 <= uVar23) goto LAB_00081208;" if (parenthesized_expression "(uVar29 <= uVar23)" ( (binary_expression "uVar29 <= uVar23" identifier <= identifier) )) (goto_statement "goto LAB_00081208;" goto statement_identifier ;)) })) (expression_statement "iStack_364 = *piVar22;" (assignment_expression "iStack_364 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "puStack_360 = (undefined4 *)piVar22[1];" (assignment_expression "puStack_360 = (undefined4 *)piVar22[1]" identifier = (cast_expression "(undefined4 *)piVar22[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[1]" identifier [ number_literal ]))) ;) (expression_statement "iStack_358 = piVar22[3];" (assignment_expression "iStack_358 = piVar22[3]" identifier = (subscript_expression "piVar22[3]" identifier [ number_literal ])) ;) (expression_statement "iStack_350 = piVar22[5];" (assignment_expression "iStack_350 = piVar22[5]" identifier = (subscript_expression "piVar22[5]" identifier [ number_literal ])) ;) (expression_statement "iStack_34c = piVar22[6];" (assignment_expression "iStack_34c = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar30[5] + puVar30[3] * 0x30;" (assignment_expression "uVar14 = puVar30[5] + puVar30[3] * 0x30" identifier = (binary_expression "puVar30[5] + puVar30[3] * 0x30" (subscript_expression "puVar30[5]" identifier [ number_literal ]) + (binary_expression "puVar30[3] * 0x30" (subscript_expression "puVar30[3]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "uStack_35c = 0;" (assignment_expression "uStack_35c = 0" identifier = number_literal) ;) (expression_statement "uVar33 = puVar30[5];" (assignment_expression "uVar33 = puVar30[5]" identifier = (subscript_expression "puVar30[5]" identifier [ number_literal ])) ;) (expression_statement "puStack_354 = auStack_310;" (assignment_expression "puStack_354 = auStack_310" identifier = identifier) ;) (if_statement "if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }" if (parenthesized_expression "(uVar33 < uVar14)" ( (binary_expression "uVar33 < uVar14" identifier < identifier) )) (compound_statement "{\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }" { (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (do_statement "do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);" do (compound_statement "{\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        }" { (if_statement "if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }" if (parenthesized_expression "((*(ushort *)(uVar33 + 0xc) & 0x400) == 0)" ( (binary_expression "(*(ushort *)(uVar33 + 0xc) & 0x400) == 0" (parenthesized_expression "(*(ushort *)(uVar33 + 0xc) & 0x400)" ( (binary_expression "*(ushort *)(uVar33 + 0xc) & 0x400" (pointer_expression "*(ushort *)(uVar33 + 0xc)" * (cast_expression "(ushort *)(uVar33 + 0xc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar33 + 0xc)" ( (binary_expression "uVar33 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }" { (if_statement "if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }" if (parenthesized_expression "(*(int *)(uVar33 + 0x14) == iVar36)" ( (binary_expression "*(int *)(uVar33 + 0x14) == iVar36" (pointer_expression "*(int *)(uVar33 + 0x14)" * (cast_expression "(int *)(uVar33 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar33 + 0x14)" ( (binary_expression "uVar33 + 0x14" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }" { (expression_statement "uStack_2a0 = *puVar6;" (assignment_expression "uStack_2a0 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uStack_298 = 0x2c;" (assignment_expression "uStack_298 = 0x2c" identifier = number_literal) ;) (expression_statement "uStack_294 = 1;" (assignment_expression "uStack_294 = 1" identifier = number_literal) ;) (expression_statement "puStack_360 = &uStack_2a0;" (assignment_expression "puStack_360 = &uStack_2a0" identifier = (pointer_expression "&uStack_2a0" & identifier)) ;) (expression_statement "puStack_29c = puVar6;" (assignment_expression "puStack_29c = puVar6" identifier = identifier) ;) (expression_statement "uStack_28c = uVar33;" (assignment_expression "uStack_28c = uVar33" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;" if (parenthesized_expression "(*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0" (pointer_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar21 + 0x10) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar21 + 0x10) + 0x38)" ( (binary_expression "*(int *)(iVar21 + 0x10) + 0x38" (pointer_expression "*(int *)(iVar21 + 0x10)" * (cast_expression "(int *)(iVar21 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x10)" ( (binary_expression "iVar21 + 0x10" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00081310;" goto statement_identifier ;)) (labeled_statement "LAB_000813ec:\n              auStack_310[0] = 0;" statement_identifier : (expression_statement "auStack_310[0] = 0;" (assignment_expression "auStack_310[0] = 0" (subscript_expression "auStack_310[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "iVar47 = FUN_00080720(&iStack_364);" (assignment_expression "iVar47 = FUN_00080720(&iStack_364)" identifier = (call_expression "FUN_00080720(&iStack_364)" identifier (argument_list "(&iStack_364)" ( (pointer_expression "&iStack_364" & identifier) )))) ;) (goto_statement "goto joined_r0x00081334;" goto statement_identifier ;) })) }) (else_clause "else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }" else (compound_statement "{\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }" { (expression_statement "puStack_360 = *(undefined4 **)(uVar33 + 0x1c);" (assignment_expression "puStack_360 = *(undefined4 **)(uVar33 + 0x1c)" identifier = (pointer_expression "*(undefined4 **)(uVar33 + 0x1c)" * (cast_expression "(undefined4 **)(uVar33 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar33 + 0x1c)" ( (binary_expression "uVar33 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;" if (parenthesized_expression "(*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0" (pointer_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar21 + 0x10) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar21 + 0x10) + 0x38)" ( (binary_expression "*(int *)(iVar21 + 0x10) + 0x38" (pointer_expression "*(int *)(iVar21 + 0x10)" * (cast_expression "(int *)(iVar21 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x10)" ( (binary_expression "iVar21 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000813ec;" goto statement_identifier ;)) (labeled_statement "LAB_00081310:\n            auStack_310[0] = 0;" statement_identifier : (expression_statement "auStack_310[0] = 0;" (assignment_expression "auStack_310[0] = 0" (subscript_expression "auStack_310[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "iVar47 = FUN_0007403c(&iStack_364);" (assignment_expression "iVar47 = FUN_0007403c(&iStack_364)" identifier = (call_expression "FUN_0007403c(&iStack_364)" identifier (argument_list "(&iStack_364)" ( (pointer_expression "&iStack_364" & identifier) )))) ;) (labeled_statement "joined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }" statement_identifier : (if_statement "if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }" if (parenthesized_expression "(iVar47 == 0)" ( (binary_expression "iVar47 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }" { (expression_statement "iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);" (assignment_expression "iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364)" identifier = (call_expression "(*(code *)(iVar13 + 0x10a8))(&iStack_364)" (parenthesized_expression "(*(code *)(iVar13 + 0x10a8))" ( (pointer_expression "*(code *)(iVar13 + 0x10a8)" * (cast_expression "(code *)(iVar13 + 0x10a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10a8)" ( (binary_expression "iVar13 + 0x10a8" identifier + number_literal) )))) )) (argument_list "(&iStack_364)" ( (pointer_expression "&iStack_364" & identifier) )))) ;) }))) (expression_statement "uVar38 = (uint)auStack_310[0];" (assignment_expression "uVar38 = (uint)auStack_310[0]" identifier = (cast_expression "(uint)auStack_310[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "auStack_310[0]" identifier [ number_literal ]))) ;) (if_statement "if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }" if (parenthesized_expression "(uVar38 == 0)" ( (binary_expression "uVar38 == 0" identifier == number_literal) )) (compound_statement "{\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }" { (expression_statement "uStack_348 = uStack_348 & 0xffff;" (assignment_expression "uStack_348 = uStack_348 & 0xffff" identifier = (binary_expression "uStack_348 & 0xffff" identifier & number_literal)) ;) (break_statement "break;" break ;) })) (if_statement "if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }" { (expression_statement "uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);" (assignment_expression "uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_)" identifier = (call_expression "CONCAT22(auStack_310[0],uStack_348._2_2_)" identifier (argument_list "(auStack_310[0],uStack_348._2_2_)" ( (subscript_expression "auStack_310[0]" identifier [ number_literal ]) , (field_expression "uStack_348._2_2_" identifier . field_identifier) )))) ;) (expression_statement "puVar30 = auStack_308;" (assignment_expression "puVar30 = auStack_308" identifier = identifier) ;) (expression_statement "(**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);" (call_expression "(**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30)" (parenthesized_expression "(**(code **)(puVar48 + 0xda92c))" ( (pointer_expression "**(code **)(puVar48 + 0xda92c)" * (pointer_expression "*(code **)(puVar48 + 0xda92c)" * (cast_expression "(code **)(puVar48 + 0xda92c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + 0xda92c)" ( (binary_expression "puVar48 + 0xda92c" identifier + number_literal) ))))) )) (argument_list "(&uStack_340,puVar30,uVar38 << 4,0x30)" ( (pointer_expression "&uStack_340" & identifier) , identifier , (binary_expression "uVar38 << 4" identifier << number_literal) , number_literal ))) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }) (else_clause "else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }" else (compound_statement "{\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }" { (expression_statement "uVar41 = (uint)uStack_348._0_2_;" (assignment_expression "uVar41 = (uint)uStack_348._0_2_" identifier = (cast_expression "(uint)uStack_348._0_2_" ( (type_descriptor "uint" type_identifier) ) (field_expression "uStack_348._0_2_" identifier . field_identifier))) ;) (expression_statement "puVar30 = &uStack_340;" (assignment_expression "puVar30 = &uStack_340" identifier = (pointer_expression "&uStack_340" & identifier)) ;) (expression_statement "auStack_2d8[0] = uStack_348._0_2_;" (assignment_expression "auStack_2d8[0] = uStack_348._0_2_" (subscript_expression "auStack_2d8[0]" identifier [ number_literal ]) = (field_expression "uStack_348._0_2_" identifier . field_identifier)) ;) (expression_statement "(**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);" (call_expression "(**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30)" (parenthesized_expression "(**(code **)(puVar48 + 0xda92c))" ( (pointer_expression "**(code **)(puVar48 + 0xda92c)" * (pointer_expression "*(code **)(puVar48 + 0xda92c)" * (cast_expression "(code **)(puVar48 + 0xda92c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + 0xda92c)" ( (binary_expression "puVar48 + 0xda92c" identifier + number_literal) ))))) )) (argument_list "(auStack_2d0,puVar30,uVar41 * 0x10,0x30)" ( identifier , identifier , (binary_expression "uVar41 * 0x10" identifier * number_literal) , number_literal ))) ;) (expression_statement "uStack_348 = uStack_348 & 0xffff;" (assignment_expression "uStack_348 = uStack_348 & 0xffff" identifier = (binary_expression "uStack_348 & 0xffff" identifier & number_literal)) ;) (if_statement "if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }" if (parenthesized_expression "(uVar41 != 0)" ( (binary_expression "uVar41 != 0" identifier != number_literal) )) (compound_statement "{\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }" { (expression_statement "puVar34 = auStack_2d8;" (assignment_expression "puVar34 = auStack_2d8" identifier = identifier) ;) (expression_statement "puVar15 = puVar34 + uVar41 * 8;" (assignment_expression "puVar15 = puVar34 + uVar41 * 8" identifier = (binary_expression "puVar34 + uVar41 * 8" identifier + (binary_expression "uVar41 * 8" identifier * number_literal))) ;) (do_statement "do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);" do (compound_statement "{\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                }" { (if_statement "if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }" if (parenthesized_expression "(uVar38 != 0)" ( (binary_expression "uVar38 != 0" identifier != number_literal) )) (compound_statement "{\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }" { (expression_statement "uVar41 = *(uint *)(puVar34 + 4);" (assignment_expression "uVar41 = *(uint *)(puVar34 + 4)" identifier = (pointer_expression "*(uint *)(puVar34 + 4)" * (cast_expression "(uint *)(puVar34 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 4)" ( (binary_expression "puVar34 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "uVar38 = *(uint *)(puVar34 + 6);" (assignment_expression "uVar38 = *(uint *)(puVar34 + 6)" identifier = (pointer_expression "*(uint *)(puVar34 + 6)" * (cast_expression "(uint *)(puVar34 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 6)" ( (binary_expression "puVar34 + 6" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = puVar34[8];" (assignment_expression "uVar1 = puVar34[8]" identifier = (subscript_expression "puVar34[8]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar34[9];" (assignment_expression "uVar2 = puVar34[9]" identifier = (subscript_expression "puVar34[9]" identifier [ number_literal ])) ;) (expression_statement "puVar46 = auStack_310;" (assignment_expression "puVar46 = auStack_310" identifier = identifier) ;) (do_statement "do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);" do (compound_statement "{\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    }" { (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "pcVar9 = (code *)(iVar37 + 0x358);" (assignment_expression "pcVar9 = (code *)(iVar37 + 0x358)" identifier = (cast_expression "(code *)(iVar37 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x358)" ( (binary_expression "iVar37 + 0x358" identifier + number_literal) )))) ;) (expression_statement "(*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);" (call_expression "(*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38)" (parenthesized_expression "(*(code *)(iVar37 + 0x358))" ( (pointer_expression "*(code *)(iVar37 + 0x358)" * (cast_expression "(code *)(iVar37 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x358)" ( (binary_expression "iVar37 + 0x358" identifier + number_literal) )))) )) (argument_list "((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38)" ( (cast_expression "(int)(short)uVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) , (cast_expression "(int)(short)puVar46[8]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)puVar46[8]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "puVar46[8]" identifier [ number_literal ]))) , (binary_expression "*(uint *)(puVar46 + 4) | uVar41" (pointer_expression "*(uint *)(puVar46 + 4)" * (cast_expression "(uint *)(puVar46 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 4)" ( (binary_expression "puVar46 + 4" identifier + number_literal) )))) | identifier) , (binary_expression "*(uint *)(puVar46 + 6) | uVar38" (pointer_expression "*(uint *)(puVar46 + 6)" * (cast_expression "(uint *)(puVar46 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 6)" ( (binary_expression "puVar46 + 6" identifier + number_literal) )))) | identifier) ))) ;) (expression_statement "puVar30 = (uint *)(int)(short)puVar46[9];" (assignment_expression "puVar30 = (uint *)(int)(short)puVar46[9]" identifier = (cast_expression "(uint *)(int)(short)puVar46[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(short)puVar46[9]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)puVar46[9]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "puVar46[9]" identifier [ number_literal ]))))) ;) (expression_statement "(*pcVar9)((int)(short)uVar2);" (call_expression "(*pcVar9)((int)(short)uVar2)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)(short)uVar2)" ( (cast_expression "(int)(short)uVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)uVar2" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ))) ;) (expression_statement "(*(code *)(iVar8 + -0x58))(&uStack_348);" (call_expression "(*(code *)(iVar8 + -0x58))(&uStack_348)" (parenthesized_expression "(*(code *)(iVar8 + -0x58))" ( (pointer_expression "*(code *)(iVar8 + -0x58)" * (cast_expression "(code *)(iVar8 + -0x58)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x58)" ( (binary_expression "iVar8 + -0x58" identifier + number_literal) )))) )) (argument_list "(&uStack_348)" ( (pointer_expression "&uStack_348" & identifier) ))) ;) (expression_statement "puVar46 = puVar46 + 8;" (assignment_expression "puVar46 = puVar46 + 8" identifier = (binary_expression "puVar46 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar35 < (int)(uint)auStack_310[0])" ( (binary_expression "iVar35 < (int)(uint)auStack_310[0]" identifier < (cast_expression "(int)(uint)auStack_310[0]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)auStack_310[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "auStack_310[0]" identifier [ number_literal ])))) )) ;) })) (expression_statement "puVar34 = puVar34 + 8;" (assignment_expression "puVar34 = puVar34 + 8" identifier = (binary_expression "puVar34 + 8" identifier + number_literal)) ;) (expression_statement "uVar38 = (uint)auStack_310[0];" (assignment_expression "uVar38 = (uint)auStack_310[0]" identifier = (cast_expression "(uint)auStack_310[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "auStack_310[0]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar15 != puVar34)" ( (binary_expression "puVar15 != puVar34" identifier != identifier) )) ;) })) }))) }))) (expression_statement "uVar33 = uVar33 + 0x30;" (assignment_expression "uVar33 = uVar33 + 0x30" identifier = (binary_expression "uVar33 + 0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar33 < uVar14)" ( (binary_expression "uVar33 < uVar14" identifier < identifier) )) ;) (expression_statement "*(undefined2 *)(puVar32 + 10) = 1;" (assignment_expression "*(undefined2 *)(puVar32 + 10) = 1" (pointer_expression "*(undefined2 *)(puVar32 + 10)" * (cast_expression "(undefined2 *)(puVar32 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)puVar32[0xc] = uVar23;" (assignment_expression "*(uint *)puVar32[0xc] = uVar23" (pointer_expression "*(uint *)puVar32[0xc]" * (cast_expression "(uint *)puVar32[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[0xc]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar32[9] = 0x2000;" (assignment_expression "puVar32[9] = 0x2000" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 6)" * (cast_expression "(undefined1 *)(puVar32 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x19) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x19) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x19)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x19)" ( (binary_expression "(int)puVar32 + 0x19" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1a)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1a)" ( (binary_expression "(int)puVar32 + 0x1a" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1b) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1b)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1b)" ( (binary_expression "(int)puVar32 + 0x1b" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 7)" * (cast_expression "(undefined1 *)(puVar32 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 7)" ( (binary_expression "puVar32 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1d)" ( (binary_expression "(int)puVar32 + 0x1d" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1e)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1e)" ( (binary_expression "(int)puVar32 + 0x1e" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1f)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1f)" ( (binary_expression "(int)puVar32 + 0x1f" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 8)" * (cast_expression "(undefined1 *)(puVar32 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x21) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x21) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x21)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x21)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x21)" ( (binary_expression "(int)puVar32 + 0x21" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x22) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x22) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x22)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x22)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x22)" ( (binary_expression "(int)puVar32 + 0x22" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x23) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x23) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x23)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x23)" ( (binary_expression "(int)puVar32 + 0x23" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (iVar47 != 0) goto LAB_0008120c;" if (parenthesized_expression "(iVar47 != 0)" ( (binary_expression "iVar47 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008120c;" goto statement_identifier ;)) }) (else_clause "else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }" else (compound_statement "{\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }" { (expression_statement "*(undefined2 *)(puVar32 + 10) = 1;" (assignment_expression "*(undefined2 *)(puVar32 + 10) = 1" (pointer_expression "*(undefined2 *)(puVar32 + 10)" * (cast_expression "(undefined2 *)(puVar32 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)puVar32[0xc] = uVar23;" (assignment_expression "*(uint *)puVar32[0xc] = uVar23" (pointer_expression "*(uint *)puVar32[0xc]" * (cast_expression "(uint *)puVar32[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[0xc]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar32[9] = 0x2000;" (assignment_expression "puVar32[9] = 0x2000" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 6)" * (cast_expression "(undefined1 *)(puVar32 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x19) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x19) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x19)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x19)" ( (binary_expression "(int)puVar32 + 0x19" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1a)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1a)" ( (binary_expression "(int)puVar32 + 0x1a" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1b) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1b)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1b)" ( (binary_expression "(int)puVar32 + 0x1b" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 7)" * (cast_expression "(undefined1 *)(puVar32 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 7)" ( (binary_expression "puVar32 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1d)" ( (binary_expression "(int)puVar32 + 0x1d" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1e)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1e)" ( (binary_expression "(int)puVar32 + 0x1e" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1f)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1f)" ( (binary_expression "(int)puVar32 + 0x1f" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 8)" * (cast_expression "(undefined1 *)(puVar32 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x21) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x21) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x21)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x21)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x21)" ( (binary_expression "(int)puVar32 + 0x21" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x22) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x22) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x22)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x22)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x22)" ( (binary_expression "(int)puVar32 + 0x22" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x23) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x23) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x23)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x23)" ( (binary_expression "(int)puVar32 + 0x23" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }))) (expression_statement "iVar35 = *(int *)(puVar48 + 0xda618);" (assignment_expression "iVar35 = *(int *)(puVar48 + 0xda618)" identifier = (pointer_expression "*(int *)(puVar48 + 0xda618)" * (cast_expression "(int *)(puVar48 + 0xda618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + 0xda618)" ( (binary_expression "puVar48 + 0xda618" identifier + number_literal) ))))) ;) (if_statement "if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }" if (parenthesized_expression "(uStack_348._0_2_ != 0)" ( (binary_expression "uStack_348._0_2_ != 0" (field_expression "uStack_348._0_2_" identifier . field_identifier) != number_literal) )) (compound_statement "{\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }" { (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" identifier = number_literal) ;) (expression_statement "puVar49 = &uStack_348;" (assignment_expression "puVar49 = &uStack_348" identifier = (pointer_expression "&uStack_348" & identifier)) ;) (do_statement "do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));" do (compound_statement "{\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        }" { (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" identifier = (binary_expression "iVar42 + 1" identifier + number_literal)) ;) (expression_statement "*(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;" (assignment_expression "*(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1" (pointer_expression "*(short *)(puVar32 + 5)" * (cast_expression "(short *)(puVar32 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = (binary_expression "*(short *)(puVar49 + 4) + 1" (pointer_expression "*(short *)(puVar49 + 4)" * (cast_expression "(short *)(puVar49 + 4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 4)" ( (binary_expression "puVar49 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12)" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x16)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x16)" ( (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined2 *)((int)puVar49 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar49 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x12)" ( (binary_expression "(int)puVar49 + 0x12" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar14 = puVar49[2];" (assignment_expression "uVar14 = puVar49[2]" identifier = (subscript_expression "puVar49[2]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar49[3];" (assignment_expression "puVar32[1] = puVar49[3]" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (subscript_expression "puVar49[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar32 = uVar14;" (assignment_expression "*puVar32 = uVar14" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "puVar30 = puVar32;" (assignment_expression "puVar30 = puVar32" identifier = identifier) ;) (expression_statement "iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);" (assignment_expression "iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22)" identifier = (call_expression "(*(code *)(iVar35 + -0x51d8))(piVar22)" (parenthesized_expression "(*(code *)(iVar35 + -0x51d8))" ( (pointer_expression "*(code *)(iVar35 + -0x51d8)" * (cast_expression "(code *)(iVar35 + -0x51d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + -0x51d8)" ( (binary_expression "iVar35 + -0x51d8" identifier + number_literal) )))) )) (argument_list "(piVar22)" ( identifier )))) ;) (if_statement "if (iVar47 != 0) goto LAB_0008120c;" if (parenthesized_expression "(iVar47 != 0)" ( (binary_expression "iVar47 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008120c;" goto statement_identifier ;)) (expression_statement "puVar49 = puVar49 + 4;" (assignment_expression "puVar49 = puVar49 + 4" identifier = (binary_expression "puVar49 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar42 < (int)(uStack_348 >> 0x10))" ( (binary_expression "iVar42 < (int)(uStack_348 >> 0x10)" identifier < (cast_expression "(int)(uStack_348 >> 0x10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uStack_348 >> 0x10)" ( (binary_expression "uStack_348 >> 0x10" identifier >> number_literal) )))) )) ;) })) (expression_statement "uVar23 = uVar23 + 0x30;" (assignment_expression "uVar23 = uVar23 + 0x30" identifier = (binary_expression "uVar23 + 0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar23 < uVar29)" ( (binary_expression "uVar23 < uVar29" identifier < identifier) )) ;) (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }" statement_identifier : (if_statement "if (iStack_104 == *piVar12) {\n    return iVar47;\n  }" if (parenthesized_expression "(iStack_104 == *piVar12)" ( (binary_expression "iStack_104 == *piVar12" identifier == (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    return iVar47;\n  }" { (return_statement "return iVar47;" return identifier ;) }))) (expression_statement "iVar21 = iStack_104;" (assignment_expression "iVar21 = iStack_104" identifier = identifier) ;) (expression_statement "(**(code **)(puVar48 + 0xda968))();" (call_expression "(**(code **)(puVar48 + 0xda968))()" (parenthesized_expression "(**(code **)(puVar48 + 0xda968))" ( (pointer_expression "**(code **)(puVar48 + 0xda968)" * (pointer_expression "*(code **)(puVar48 + 0xda968)" * (cast_expression "(code **)(puVar48 + 0xda968)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + 0xda968)" ( (binary_expression "puVar48 + 0xda968" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar36 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar36 = *(int *)(iVar21 + 0x18)" identifier = (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = FUN_0007bd64(0);" (assignment_expression "iVar21 = FUN_0007bd64(0)" identifier = (call_expression "FUN_0007bd64(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (if_statement "if (iVar21 != 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined1 *)puVar30 = 0x9e;" (assignment_expression "*(undefined1 *)puVar30 = 0x9e" (pointer_expression "*(undefined1 *)puVar30" * (cast_expression "(undefined1 *)puVar30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar30[7] = *(uint *)(iVar36 + 8);" (assignment_expression "puVar30[7] = *(uint *)(iVar36 + 8)" (subscript_expression "puVar30[7]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(iVar36 + 8)" * (cast_expression "(uint *)(iVar36 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(uint *)(iVar36 + 0xc);" (assignment_expression "uVar23 = *(uint *)(iVar36 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar36 + 0xc)" * (cast_expression "(uint *)(iVar36 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0xc)" ( (binary_expression "iVar36 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar30[0xc] = 0;" (assignment_expression "puVar30[0xc] = 0" (subscript_expression "puVar30[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar30[8] = uVar23;" (assignment_expression "puVar30[8] = uVar23" (subscript_expression "puVar30[8]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 1;" return number_literal ;) (labeled_statement "code_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;" statement_identifier : (expression_statement "*(undefined2 *)(puVar32 + 6) = 1;" (assignment_expression "*(undefined2 *)(puVar32 + 6) = 1" (pointer_expression "*(undefined2 *)(puVar32 + 6)" * (cast_expression "(undefined2 *)(puVar32 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "puVar32[8] = 0;" (assignment_expression "puVar32[8] = 0" (subscript_expression "puVar32[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[10] = 0x10000;" (assignment_expression "puVar32[10] = 0x10000" (subscript_expression "puVar32[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(char **)puVar32[0xc] = pcVar44;" (assignment_expression "*(char **)puVar32[0xc] = pcVar44" (pointer_expression "*(char **)puVar32[0xc]" * (cast_expression "(char **)puVar32[0xc]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar32[0xc]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "*(short *)((int)puVar32 + 0x12) = sStack_b2;" (assignment_expression "*(short *)((int)puVar32 + 0x12) = sStack_b2" (pointer_expression "*(short *)((int)puVar32 + 0x12)" * (cast_expression "(short *)((int)puVar32 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }" if (parenthesized_expression "((puVar6[3] == 0) && ((puVar6[9] & 2) == 0))" ( (binary_expression "(puVar6[3] == 0) && ((puVar6[9] & 2) == 0)" (parenthesized_expression "(puVar6[3] == 0)" ( (binary_expression "puVar6[3] == 0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((puVar6[9] & 2) == 0)" ( (binary_expression "(puVar6[9] & 2) == 0" (parenthesized_expression "(puVar6[9] & 2)" ( (binary_expression "puVar6[9] & 2" (subscript_expression "puVar6[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    sVar17 = sStack_b2 + 0x1c;\n  }" { (expression_statement "sVar17 = sStack_b2 + 0x1c;" (assignment_expression "sVar17 = sStack_b2 + 0x1c" identifier = (binary_expression "sStack_b2 + 0x1c" identifier + number_literal)) ;) }) (else_clause "else {\n    sVar17 = sStack_b2 + -10;\n  }" else (compound_statement "{\n    sVar17 = sStack_b2 + -10;\n  }" { (expression_statement "sVar17 = sStack_b2 + -10;" (assignment_expression "sVar17 = sStack_b2 + -10" identifier = (binary_expression "sStack_b2 + -10" identifier + number_literal)) ;) }))) (if_statement "if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }" if (parenthesized_expression "(sVar17 < 0)" ( (binary_expression "sVar17 < 0" identifier < number_literal) )) (compound_statement "{\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }" { (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }" else (compound_statement "{\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }" { (expression_statement "*(short *)((int)puVar32 + 0x12) = sVar17;" (assignment_expression "*(short *)((int)puVar32 + 0x12) = sVar17" (pointer_expression "*(short *)((int)puVar32 + 0x12)" * (cast_expression "(short *)((int)puVar32 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }))) (expression_statement "*(undefined2 *)((int)puVar32 + 0x16) = 0x2b;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x16) = 0x2b" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x16)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x16)" ( (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = (*pcVar11)(puVar7,0x2b);" (assignment_expression "uVar16 = (*pcVar11)(puVar7,0x2b)" identifier = (call_expression "(*pcVar11)(puVar7,0x2b)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(puVar7,0x2b)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(puVar32 + 5) = uVar16;" (assignment_expression "*(undefined2 *)(puVar32 + 5) = uVar16" (pointer_expression "*(undefined2 *)(puVar32 + 5)" * (cast_expression "(undefined2 *)(puVar32 + 5)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar32[9] = 0x4000;" (assignment_expression "puVar32[9] = 0x4000" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;" (assignment_expression "*puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3" (pointer_expression "*puVar32" * identifier) = (binary_expression "*(uint *)(pcVar44 + 0x20) | (uint)param_3" (pointer_expression "*(uint *)(pcVar44 + 0x20)" * (cast_expression "(uint *)(pcVar44 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar44 + 0x20)" ( (binary_expression "pcVar44 + 0x20" identifier + number_literal) )))) | (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;" (assignment_expression "puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (binary_expression "*(uint *)(pcVar44 + 0x24) | (uint)param_4" (pointer_expression "*(uint *)(pcVar44 + 0x24)" * (cast_expression "(uint *)(pcVar44 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar44 + 0x24)" ( (binary_expression "pcVar44 + 0x24" identifier + number_literal) )))) | (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar8 = (*pcVar9)(param_1,puVar32);" (assignment_expression "iVar8 = (*pcVar9)(param_1,puVar32)" identifier = (call_expression "(*pcVar9)(param_1,puVar32)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(param_1,puVar32)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00080a6c;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;)) (goto_statement "goto LAB_00080e28;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }" { (expression_statement "iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);" (assignment_expression "iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6)" identifier = (call_expression "(*pcVar10)(pcVar43,*puVar45,unaff_s6)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pcVar43,*puVar45,unaff_s6)" ( identifier , (pointer_expression "*puVar45" * identifier) , identifier )))) ;) (if_statement "if (iVar8 == 0) goto LAB_00080b70;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (expression_statement "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);" (assignment_expression "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32)" identifier = (binary_expression "(uint)*(ushort *)((int)puVar49 + 0x32)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)puVar49 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x32)" ( (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar45 = puVar45 + 5;" (assignment_expression "puVar45 = puVar45 + 5" identifier = (binary_expression "puVar45 + 5" identifier + number_literal)) ;) (expression_statement "pcVar31 = pcVar40 + 1;" (assignment_expression "pcVar31 = pcVar40 + 1" identifier = (binary_expression "pcVar40 + 1" identifier + number_literal)) ;) (if_statement "if ((int)uVar23 <= (int)(pcVar40 + 1)) break;" if (parenthesized_expression "((int)uVar23 <= (int)(pcVar40 + 1))" ( (binary_expression "(int)uVar23 <= (int)(pcVar40 + 1)" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(pcVar40 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar40 + 1)" ( (binary_expression "pcVar40 + 1" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00080ad0:\n    pcVar40 = pcVar31;" statement_identifier : (expression_statement "pcVar40 = pcVar31;" (assignment_expression "pcVar40 = pcVar31" identifier = identifier) ;)) (if_statement "if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }" if (parenthesized_expression "(*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2)" ( (binary_expression "*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2" (pointer_expression "*(short *)(puVar49[1] + (int)pcVar40 * 2)" * (cast_expression "(short *)(puVar49[1] + (int)pcVar40 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49[1] + (int)pcVar40 * 2)" ( (binary_expression "puVar49[1] + (int)pcVar40 * 2" (subscript_expression "puVar49[1]" identifier [ number_literal ]) + (binary_expression "(int)pcVar40 * 2" (cast_expression "(int)pcVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) != number_literal) )) (compound_statement "{\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }" { (expression_statement "puVar45 = puVar45 + 5;" (assignment_expression "puVar45 = puVar45 + 5" identifier = (binary_expression "puVar45 + 5" identifier + number_literal)) ;) (expression_statement "pcVar31 = pcVar40 + 1;" (assignment_expression "pcVar31 = pcVar40 + 1" identifier = (binary_expression "pcVar40 + 1" identifier + number_literal)) ;) (if_statement "if ((int)uVar23 <= (int)(pcVar40 + 1)) break;" if (parenthesized_expression "((int)uVar23 <= (int)(pcVar40 + 1))" ( (binary_expression "(int)uVar23 <= (int)(pcVar40 + 1)" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(pcVar40 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar40 + 1)" ( (binary_expression "pcVar40 + 1" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00080ad0;" goto statement_identifier ;) })) })) (expression_statement "pcVar40 = pcVar40 + 1;" (assignment_expression "pcVar40 = pcVar40 + 1" identifier = (binary_expression "pcVar40 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = *piVar22;" (assignment_expression "iVar8 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (labeled_statement "LAB_00080938:\n  iVar37 = iVar37 + 1;" statement_identifier : (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;)) (expression_statement "piVar12 = piVar12 + 5;" (assignment_expression "piVar12 = piVar12 + 5" identifier = (binary_expression "piVar12 + 5" identifier + number_literal)) ;) (if_statement "if (iVar8 <= iVar37) goto code_r0x00080948;" if (parenthesized_expression "(iVar8 <= iVar37)" ( (binary_expression "iVar8 <= iVar37" identifier <= identifier) )) (goto_statement "goto code_r0x00080948;" goto statement_identifier ;)) (goto_statement "goto LAB_000808d4;" goto statement_identifier ;) (labeled_statement "LAB_00080b5c:\n  psVar26 = psVar26 + 1;" statement_identifier : (expression_statement "psVar26 = psVar26 + 1;" (assignment_expression "psVar26 = psVar26 + 1" identifier = (binary_expression "psVar26 + 1" identifier + number_literal)) ;)) (if_statement "if (psVar27 == psVar26) goto LAB_00080938;" if (parenthesized_expression "(psVar27 == psVar26)" ( (binary_expression "psVar27 == psVar26" identifier == identifier) )) (goto_statement "goto LAB_00080938;" goto statement_identifier ;)) (if_statement "if (iVar13 == *psVar26) goto LAB_00080b70;" if (parenthesized_expression "(iVar13 == *psVar26)" ( (binary_expression "iVar13 == *psVar26" identifier == (pointer_expression "*psVar26" * identifier)) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (goto_statement "goto LAB_00080b5c;" goto statement_identifier ;) (labeled_statement "code_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);" statement_identifier : (expression_statement "bVar18 = *(byte *)((int)puVar49 + 0x37);" (assignment_expression "bVar18 = *(byte *)((int)puVar49 + 0x37)" identifier = (pointer_expression "*(byte *)((int)puVar49 + 0x37)" * (cast_expression "(byte *)((int)puVar49 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x37)" ( (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (labeled_statement "LAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" statement_identifier : (if_statement "if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" if (parenthesized_expression "((bVar18 & 0xc0) == 0xc0)" ( (binary_expression "(bVar18 & 0xc0) == 0xc0" (parenthesized_expression "(bVar18 & 0xc0)" ( (binary_expression "bVar18 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" { (expression_statement "puVar32[9] = 0x100;" (assignment_expression "puVar32[9] = 0x100" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;" statement_identifier : (expression_statement "*(short *)(puVar32 + 5) = sVar17 + 0x10;" (assignment_expression "*(short *)(puVar32 + 5) = sVar17 + 0x10" (pointer_expression "*(short *)(puVar32 + 5)" * (cast_expression "(short *)(puVar32 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = (binary_expression "sVar17 + 0x10" identifier + number_literal)) ;)) (expression_statement "*(byte *)((int)puVar32 + 0x11) = bVar24;" (assignment_expression "*(byte *)((int)puVar32 + 0x11) = bVar24" (pointer_expression "*(byte *)((int)puVar32 + 0x11)" * (cast_expression "(byte *)((int)puVar32 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar25 = *(undefined4 *)(iVar21 + 0xc);" (assignment_expression "uVar25 = *(undefined4 *)(iVar21 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar21 + 0xc)" * (cast_expression "(undefined4 *)(iVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0xc)" ( (binary_expression "iVar21 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" else (compound_statement "{\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" { (labeled_statement "LAB_0008096c:\n    bVar3 = false;" statement_identifier : (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;)) (labeled_statement "joined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" statement_identifier : (if_statement "if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" if (parenthesized_expression "((bVar18 & 4) == 0)" ( (binary_expression "(bVar18 & 4) == 0" (parenthesized_expression "(bVar18 & 4)" ( (binary_expression "bVar18 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }" { (expression_statement "uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];" (assignment_expression "uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11]" identifier = (binary_expression "*(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11]" (binary_expression "*(uint *)(iVar36 + 0x38) & puVar49[0x10]" (pointer_expression "*(uint *)(iVar36 + 0x38)" * (cast_expression "(uint *)(iVar36 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x38)" ( (binary_expression "iVar36 + 0x38" identifier + number_literal) )))) & (subscript_expression "puVar49[0x10]" identifier [ number_literal ])) | (binary_expression "*(uint *)(iVar36 + 0x3c) & puVar49[0x11]" (pointer_expression "*(uint *)(iVar36 + 0x3c)" * (cast_expression "(uint *)(iVar36 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x3c)" ( (binary_expression "iVar36 + 0x3c" identifier + number_literal) )))) & (subscript_expression "puVar49[0x11]" identifier [ number_literal ])))) ;) (expression_statement "uVar23 = 0x240;" (assignment_expression "uVar23 = 0x240" identifier = number_literal) ;) (if_statement "if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar23 = 0x200;\n      }" { (expression_statement "uVar23 = 0x200;" (assignment_expression "uVar23 = 0x200" identifier = number_literal) ;) })) (expression_statement "puVar32[9] = uVar23;" (assignment_expression "puVar32[9] = uVar23" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (!bVar3) goto LAB_00080984;" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (goto_statement "goto LAB_00080984;" goto statement_identifier ;)) (labeled_statement "LAB_00080bcc:\n      cVar19 = cVar20 + '\x01';" statement_identifier : (expression_statement "cVar19 = cVar20 + '\x01';" (assignment_expression "cVar19 = cVar20 + '\x01'" identifier = (binary_expression "cVar20 + '\x01'" identifier + (char_literal "'\x01'" ' escape_sequence '))) ;)) (labeled_statement "LAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;" statement_identifier : (expression_statement "*(char *)((int)puVar32 + 0x11) = cVar19;" (assignment_expression "*(char *)((int)puVar32 + 0x11) = cVar19" (pointer_expression "*(char *)((int)puVar32 + 0x11)" * (cast_expression "(char *)((int)puVar32 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (if_statement "if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(*(short *)((int)puVar6 + 0x2e) == 0)" ( (binary_expression "*(short *)((int)puVar6 + 0x2e) == 0" (pointer_expression "*(short *)((int)puVar6 + 0x2e)" * (cast_expression "(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;" (assignment_expression "sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1" identifier = (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1" (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17" (cast_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" ( (binary_expression "(*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)" (parenthesized_expression "(*(short *)(puVar49 + 0xc) * 0xf)" ( (binary_expression "*(short *)(puVar49 + 0xc) * 0xf" (pointer_expression "*(short *)(puVar49 + 0xc)" * (cast_expression "(short *)(puVar49 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0xc)" ( (binary_expression "puVar49 + 0xc" identifier + number_literal) )))) * number_literal) )) / (cast_expression "(int)*(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)puVar6 + 0x2e)" * (cast_expression "(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) + identifier) + number_literal)) ;) (expression_statement "*(short *)(puVar32 + 5) = sVar28;" (assignment_expression "*(short *)(puVar32 + 5) = sVar28" (pointer_expression "*(short *)(puVar32 + 5)" * (cast_expression "(short *)(puVar32 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }" { (expression_statement "puVar7 = *(uint **)(iVar36 + 0x28);" (assignment_expression "puVar7 = *(uint **)(iVar36 + 0x28)" identifier = (pointer_expression "*(uint **)(iVar36 + 0x28)" * (cast_expression "(uint **)(iVar36 + 0x28)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + 0x28)" ( (binary_expression "iVar36 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pcVar43 = (char *)(int)(short)(sVar17 + 0x10);" (assignment_expression "pcVar43 = (char *)(int)(short)(sVar17 + 0x10)" identifier = (cast_expression "(char *)(int)(short)(sVar17 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(short)(sVar17 + 0x10)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)(sVar17 + 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(sVar17 + 0x10)" ( (binary_expression "sVar17 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }" if (parenthesized_expression "(0 < *(int *)(pcVar39 + 0x5c))" ( (binary_expression "0 < *(int *)(pcVar39 + 0x5c)" number_literal < (pointer_expression "*(int *)(pcVar39 + 0x5c)" * (cast_expression "(int *)(pcVar39 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x5c)" ( (binary_expression "pcVar39 + 0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }" { (expression_statement "pcVar40 = (char *)0x0;" (assignment_expression "pcVar40 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6d8 + 0x7254)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + 0x7254)" ( (binary_expression "PTR_LAB_0015b6d8 + 0x7254" identifier + number_literal) )))) ;) (do_statement "do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));" do (compound_statement "{\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          }" { (while_statement "while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }" { (expression_statement "unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);" (assignment_expression "unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30)" ( (binary_expression "*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30" (pointer_expression "*(int *)(pcVar39 + 100)" * (cast_expression "(int *)(pcVar39 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 100)" ( (binary_expression "pcVar39 + 100" identifier + number_literal) )))) + (binary_expression "(int)pcVar40 * 0x30" (cast_expression "(int)pcVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);" (assignment_expression "iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49)" identifier = (call_expression "(*pcVar11)(*unaff_s6,puVar7,puVar49)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(*unaff_s6,puVar7,puVar49)" ( (pointer_expression "*unaff_s6" * identifier) , identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) goto LAB_00080d34;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00080d34;" goto statement_identifier ;)) (expression_statement "sVar28 = (short)pcVar43;" (assignment_expression "sVar28 = (short)pcVar43" identifier = (cast_expression "(short)pcVar43" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if (0 < *(short *)(unaff_s6 + 2)) break;" if (parenthesized_expression "(0 < *(short *)(unaff_s6 + 2))" ( (binary_expression "0 < *(short *)(unaff_s6 + 2)" number_literal < (pointer_expression "*(short *)(unaff_s6 + 2)" * (cast_expression "(short *)(unaff_s6 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 2)" ( (binary_expression "unaff_s6 + 2" identifier + number_literal) ))))) )) (break_statement "break;" break ;)) (expression_statement "pcVar40 = pcVar40 + 1;" (assignment_expression "pcVar40 = pcVar40 + 1" identifier = (binary_expression "pcVar40 + 1" identifier + number_literal)) ;) (expression_statement "pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));" (assignment_expression "pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2))" identifier = (cast_expression "(char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(short)(sVar28 + *(short *)(unaff_s6 + 2))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)(sVar28 + *(short *)(unaff_s6 + 2))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(sVar28 + *(short *)(unaff_s6 + 2))" ( (binary_expression "sVar28 + *(short *)(unaff_s6 + 2)" identifier + (pointer_expression "*(short *)(unaff_s6 + 2)" * (cast_expression "(short *)(unaff_s6 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 2)" ( (binary_expression "unaff_s6 + 2" identifier + number_literal) ))))) )))))) ;) (if_statement "if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;" if (parenthesized_expression "(*(int *)(pcVar39 + 0x5c) <= (int)pcVar40)" ( (binary_expression "*(int *)(pcVar39 + 0x5c) <= (int)pcVar40" (pointer_expression "*(int *)(pcVar39 + 0x5c)" * (cast_expression "(int *)(pcVar39 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x5c)" ( (binary_expression "pcVar39 + 0x5c" identifier + number_literal) )))) <= (cast_expression "(int)pcVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00080d34;" goto statement_identifier ;)) })) (if_statement "if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }" if (parenthesized_expression "((*(ushort *)(unaff_s6 + 3) & 0x82) == 0)" ( (binary_expression "(*(ushort *)(unaff_s6 + 3) & 0x82) == 0" (parenthesized_expression "(*(ushort *)(unaff_s6 + 3) & 0x82)" ( (binary_expression "*(ushort *)(unaff_s6 + 3) & 0x82" (pointer_expression "*(ushort *)(unaff_s6 + 3)" * (cast_expression "(ushort *)(unaff_s6 + 3)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 3)" ( (binary_expression "unaff_s6 + 3" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              sVar28 = sVar28 + -1;\n            }" { (expression_statement "sVar28 = sVar28 + -1;" (assignment_expression "sVar28 = sVar28 + -1" identifier = (binary_expression "sVar28 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n              sVar28 = sVar28 + -0x14;\n            }" else (compound_statement "{\n              sVar28 = sVar28 + -0x14;\n            }" { (expression_statement "sVar28 = sVar28 + -0x14;" (assignment_expression "sVar28 = sVar28 + -0x14" identifier = (binary_expression "sVar28 + -0x14" identifier + number_literal)) ;) }))) (expression_statement "pcVar43 = (char *)(int)sVar28;" (assignment_expression "pcVar43 = (char *)(int)sVar28" identifier = (cast_expression "(char *)(int)sVar28" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)sVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar40 = pcVar40 + 1;" (assignment_expression "pcVar40 = pcVar40 + 1" identifier = (binary_expression "pcVar40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)pcVar40 < *(int *)(pcVar39 + 0x5c))" ( (binary_expression "(int)pcVar40 < *(int *)(pcVar39 + 0x5c)" (cast_expression "(int)pcVar40" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(pcVar39 + 0x5c)" * (cast_expression "(int *)(pcVar39 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x5c)" ( (binary_expression "pcVar39 + 0x5c" identifier + number_literal) ))))) )) ;) (labeled_statement "LAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);" statement_identifier : (expression_statement "sVar28 = *(short *)(puVar32 + 5);" (assignment_expression "sVar28 = *(short *)(puVar32 + 5)" identifier = (pointer_expression "*(short *)(puVar32 + 5)" * (cast_expression "(short *)(puVar32 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) ))))) ;)) })) (expression_statement "uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);" (assignment_expression "uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43)" identifier = (call_expression "(*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43)" (parenthesized_expression "(*(code *)(puVar5 + 0x358))" ( (pointer_expression "*(code *)(puVar5 + 0x358)" * (cast_expression "(code *)(puVar5 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x358)" ( (binary_expression "puVar5 + 0x358" identifier + number_literal) )))) )) (argument_list "((int)sVar28,pcVar43)" ( (cast_expression "(int)sVar28" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "*(undefined2 *)(puVar32 + 5) = uVar16;" (assignment_expression "*(undefined2 *)(puVar32 + 5) = uVar16" (pointer_expression "*(undefined2 *)(puVar32 + 5)" * (cast_expression "(undefined2 *)(puVar32 + 5)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" else (compound_statement "{\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" { (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "puVar32[9] = 0x240;" (assignment_expression "puVar32[9] = 0x240" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (bVar3) goto LAB_00080bcc;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00080bcc;" goto statement_identifier ;)) (labeled_statement "LAB_00080984:\n      cVar19 = '\0';" statement_identifier : (expression_statement "cVar19 = '\0';" (assignment_expression "cVar19 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;" if (parenthesized_expression "(((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0))" ( (binary_expression "((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)" (parenthesized_expression "((puVar6[9] & 0x20) != 0)" ( (binary_expression "(puVar6[9] & 0x20) != 0" (parenthesized_expression "(puVar6[9] & 0x20)" ( (binary_expression "puVar6[9] & 0x20" (subscript_expression "puVar6[9]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(cVar19 = '\0', puVar49[9] != 0)" ( (comma_expression "cVar19 = '\0', puVar49[9] != 0" (assignment_expression "cVar19 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) , (binary_expression "puVar49[9] != 0" (subscript_expression "puVar49[9]" identifier [ number_literal ]) != number_literal)) ))) )) (goto_statement "goto LAB_000809a4;" goto statement_identifier ;)) (if_statement "if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;" if (parenthesized_expression "(((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0))))" ( (binary_expression "((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))" (parenthesized_expression "((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0))))" ( (binary_expression "(uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))" (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) || (parenthesized_expression "((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))" ( (parenthesized_expression "(((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0))" ( (binary_expression "((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)" (parenthesized_expression "((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc)))" ( (binary_expression "(*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))" (binary_expression "(*(byte *)((int)puVar49 + 0x37) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar49 + 0x37) & 0x20)" ( (binary_expression "*(byte *)((int)puVar49 + 0x37) & 0x20" (pointer_expression "*(byte *)((int)puVar49 + 0x37)" * (cast_expression "(byte *)((int)puVar49 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x37)" ( (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "(*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))" ( (binary_expression "*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc)" (pointer_expression "*(short *)((int)puVar6 + 0x2e)" * (cast_expression "(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) <= (pointer_expression "*(short *)(puVar49 + 0xc)" * (cast_expression "(short *)(puVar49 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0xc)" ( (binary_expression "puVar49 + 0xc" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)" ( (binary_expression "(*(ushort *)(pcVar39 + 0x2c) & 4) != 0" (parenthesized_expression "(*(ushort *)(pcVar39 + 0x2c) & 4)" ( (binary_expression "*(ushort *)(pcVar39 + 0x2c) & 4" (pointer_expression "*(ushort *)(pcVar39 + 0x2c)" * (cast_expression "(ushort *)(pcVar39 + 0x2c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x2c)" ( (binary_expression "pcVar39 + 0x2c" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) || (parenthesized_expression "((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))" ( (parenthesized_expression "(*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0))" ( (binary_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)" (binary_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x5dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x5dc8)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x5dc8" identifier + number_literal) )))) == number_literal) || (parenthesized_expression "((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20)" ( (binary_expression "*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20" (pointer_expression "*(ushort *)(**(int **)pcVar39 + 0x4c)" * (cast_expression "(ushort *)(**(int **)pcVar39 + 0x4c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)pcVar39 + 0x4c)" ( (binary_expression "**(int **)pcVar39 + 0x4c" (pointer_expression "**(int **)pcVar39" * (pointer_expression "*(int **)pcVar39" * (cast_expression "(int **)pcVar39" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00080a28;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(*(short *)((int)puVar6 + 0x2e) == 0)" ( (binary_expression "*(short *)((int)puVar6 + 0x2e) == 0" (pointer_expression "*(short *)((int)puVar6 + 0x2e)" * (cast_expression "(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "*(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;" (assignment_expression "*(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1" (pointer_expression "*(short *)(puVar32 + 5)" * (cast_expression "(short *)(puVar32 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1" (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17" (cast_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" ( (binary_expression "(*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)" (parenthesized_expression "(*(short *)(puVar49 + 0xc) * 0xf)" ( (binary_expression "*(short *)(puVar49 + 0xc) * 0xf" (pointer_expression "*(short *)(puVar49 + 0xc)" * (cast_expression "(short *)(puVar49 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0xc)" ( (binary_expression "puVar49 + 0xc" identifier + number_literal) )))) * number_literal) )) / (cast_expression "(int)*(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)puVar6 + 0x2e)" * (cast_expression "(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) + identifier) + number_literal)) ;) })))) (expression_statement "uVar25 = *(undefined4 *)(iVar21 + 0xc);" (assignment_expression "uVar25 = *(undefined4 *)(iVar21 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar21 + 0xc)" * (cast_expression "(undefined4 *)(iVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0xc)" ( (binary_expression "iVar21 + 0xc" identifier + number_literal) ))))) ;) })))) (expression_statement "puVar30 = puVar32;" (assignment_expression "puVar30 = puVar32" identifier = identifier) ;) (expression_statement "pcVar31 = pcVar44;" (assignment_expression "pcVar31 = pcVar44" identifier = identifier) ;) (expression_statement "(*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);" (call_expression "(*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14)" (parenthesized_expression "(*(code *)(puVar4 + -0x4dc4))" ( (pointer_expression "*(code *)(puVar4 + -0x4dc4)" * (cast_expression "(code *)(puVar4 + -0x4dc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x4dc4)" ( (binary_expression "puVar4 + -0x4dc4" identifier + number_literal) )))) )) (argument_list "(uVar25,iVar21 + 0x14)" ( identifier , (binary_expression "iVar21 + 0x14" identifier + number_literal) ))) ;) (expression_statement "iVar8 = (*pcVar9)(param_1,puVar32);" (assignment_expression "iVar8 = (*pcVar9)(param_1,puVar32)" identifier = (call_expression "(*pcVar9)(param_1,puVar32)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(param_1,puVar32)" ( identifier , identifier )))) ;) (expression_statement "*(short *)((int)puVar32 + 0x16) = sVar17;" (assignment_expression "*(short *)((int)puVar32 + 0x16) = sVar17" (pointer_expression "*(short *)((int)puVar32 + 0x16)" * (cast_expression "(short *)((int)puVar32 + 0x16)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x16)" ( (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar8 != 0) goto LAB_00080a6c;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;)) (labeled_statement "LAB_00080a28:\n  pcVar31 = (char *)0x0;" statement_identifier : (expression_statement "pcVar31 = (char *)0x0;" (assignment_expression "pcVar31 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar30 = puVar49;" (assignment_expression "puVar30 = puVar49" identifier = identifier) ;) (expression_statement "iVar8 = FUN_0007dec0(param_1,iVar36);" (assignment_expression "iVar8 = FUN_0007dec0(param_1,iVar36)" identifier = (call_expression "FUN_0007dec0(param_1,iVar36)" identifier (argument_list "(param_1,iVar36)" ( identifier , identifier )))) ;) (if_statement "if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }" if (parenthesized_expression "(param_1[5] == 1)" ( (binary_expression "param_1[5] == 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    puVar6[9] = puVar6[9] | 0x100;\n  }" { (expression_statement "puVar6[9] = puVar6[9] | 0x100;" (assignment_expression "puVar6[9] = puVar6[9] | 0x100" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = (binary_expression "puVar6[9] | 0x100" (subscript_expression "puVar6[9]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;" if (parenthesized_expression "((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))" ( (binary_expression "(*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0)" (parenthesized_expression "(*(int *)(iVar36 + 0x44) != 0)" ( (binary_expression "*(int *)(iVar36 + 0x44) != 0" (pointer_expression "*(int *)(iVar36 + 0x44)" * (cast_expression "(int *)(iVar36 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x44)" ( (binary_expression "iVar36 + 0x44" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(puVar49 = (uint *)puVar49[5], iVar8 != 0)" ( (comma_expression "puVar49 = (uint *)puVar49[5], iVar8 != 0" (assignment_expression "puVar49 = (uint *)puVar49[5]" identifier = (cast_expression "(uint *)puVar49[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar49[5]" identifier [ number_literal ]))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;)) (labeled_statement "LAB_00080bf4:\n  cVar20 = cVar20 + '\x01';" statement_identifier : (expression_statement "cVar20 = cVar20 + '\x01';" (assignment_expression "cVar20 = cVar20 + '\x01'" identifier = (binary_expression "cVar20 + '\x01'" identifier + (char_literal "'\x01'" ' escape_sequence '))) ;)) (if_statement "if (puVar49 == (uint *)0x0) goto code_r0x00080c04;" if (parenthesized_expression "(puVar49 == (uint *)0x0)" ( (binary_expression "puVar49 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x00080c04;" goto statement_identifier ;)) (goto_statement "goto LAB_0008081c;" goto statement_identifier ;) (labeled_statement "LAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);" statement_identifier : (expression_statement "bVar18 = *(byte *)((int)puVar49 + 0x37);" (assignment_expression "bVar18 = *(byte *)((int)puVar49 + 0x37)" identifier = (pointer_expression "*(byte *)((int)puVar49 + 0x37)" * (cast_expression "(byte *)((int)puVar49 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x37)" ( (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }" if (parenthesized_expression "((bVar18 & 0xc0) == 0xc0)" ( (binary_expression "(bVar18 & 0xc0) == 0xc0" (parenthesized_expression "(bVar18 & 0xc0)" ( (binary_expression "bVar18 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }" { (expression_statement "puVar32[9] = 0x100;" (assignment_expression "puVar32[9] = 0x100" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar24 = cVar20 + 1;" (assignment_expression "bVar24 = cVar20 + 1" identifier = (binary_expression "cVar20 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00080c28;" goto statement_identifier ;) })) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto joined_r0x00080b94;" goto statement_identifier ;) (labeled_statement "code_r0x00080c04:\n  iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;) })))
(translation_unit "int whereLoopAddBtree(WhereLoopBuilder *pBuilder,Bitmask mPrereq)\n\n{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  int *piVar5;\n  Table *pTVar6;\n  Index *pIVar7;\n  WhereOrSet *pWVar8;\n  code *pcVar9;\n  int iVar10;\n  byte bVar22;\n  u8 uVar23;\n  Expr *pEVar11;\n  char cVar24;\n  code *pcVar12;\n  LogEst LVar20;\n  short sVar21;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  WhereTerm *pWVar18;\n  ushort *puVar19;\n  WhereClause *pWVar25;\n  byte bVar29;\n  ExprList *pEVar26;\n  code *pcVar27;\n  WhereTerm *pWVar28;\n  short sVar33;\n  short *psVar30;\n  short *psVar31;\n  WhereTerm **ppWVar32;\n  uint uVar34;\n  WhereOrInfo *pWVar35;\n  Index *in_a2;\n  Index *pIVar36;\n  WhereInfo *in_a3;\n  WhereInfo *pWVar37;\n  Index *pIVar38;\n  ExprList_item *pEVar39;\n  WhereTerm *pWVar40;\n  ushort *puVar41;\n  int iVar42;\n  SrcList_item *pSrc;\n  uint *puVar43;\n  WhereInfo *pWVar44;\n  WhereInfo *pWVar45;\n  uint uVar46;\n  int iVar47;\n  WhereInfo *pWVar48;\n  WhereInfo *pWVar49;\n  uint *puVar50;\n  LogEst *pLVar51;\n  WhereTerm *pWVar52;\n  WhereInfo *unaff_s5;\n  Table *unaff_s6;\n  int iVar53;\n  undefined *puVar54;\n  undefined *puVar55;\n  Index *pProbe;\n  undefined1 *in_stack_fffffc30;\n  undefined4 in_stack_fffffc34;\n  undefined4 in_stack_fffffc3c;\n  WhereLoopBuilder WStack_364;\n  uint uStack_348;\n  undefined4 uStack_344;\n  undefined4 uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  WhereOrSet WStack_310;\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  WhereInfo *pWStack_2a0;\n  WhereClause *pWStack_29c;\n  u8 uStack_298;\n  int iStack_294;\n  WhereTerm *pWStack_28c;\n  int iStack_104;\n  Index *pIStack_100;\n  SrcList_item *pSStack_fc;\n  WhereInfo *pWStack_f8;\n  WhereInfo *pWStack_f4;\n  WhereLoopBuilder *pWStack_f0;\n  WhereInfo *pWStack_ec;\n  Table *pTStack_e8;\n  Index *pIStack_e4;\n  Index *pIStack_e0;\n  code *pcStack_dc;\n  Index *pIStack_d0;\n  WhereInfo *pWStack_cc;\n  undefined4 uStack_c4;\n  short sStack_b2;\n  i16 aiColumnPk;\n  Index sPk;\n  LogEst aiRowEstPk [2];\n  \n  puVar55 = PTR___stack_chk_guard_0015ba2c;\n  pIVar38 = (Index *)pBuilder->pNew;\n  pWVar25 = pBuilder->pWC;\n  pWVar44 = pBuilder->pWInfo;\n  piVar5 = *(int **)PTR___stack_chk_guard_0015ba2c;\n  aiColumnPk = -1;\n  pSrc = (SrcList_item *)\n         ((int)((WhereClause *)pWVar44->pTabList)->aStatic +\n         (uint)*(byte *)&pIVar38->zColAff * 0x48 + -0x10);\n  pTVar6 = pSrc->pTab;\n  pProbe = pSrc->pIBIndex;\n  pIVar36 = in_a2;\n  pWVar37 = in_a3;\n  if (pProbe == (Index *)0x0) {\n    if ((pTVar6->tabFlags & 0x20) == 0) {\n      pProbe = &sPk;\n      pIVar36 = (Index *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(pProbe,0);\n      sPk.nKeyCol = 1;\n      sPk.nColumn = 1;\n      sPk.pTable = pTVar6;\n      sPk.onError = '\x05';\n      aiRowEstPk[1] = 0;\n      sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0;\n      sPk.szIdxRow = pTVar6->szTabRow;\n      sPk.aiColumn = &aiColumnPk;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n      sPk.aiRowLogEst = aiRowEstPk;\n      aiRowEstPk[0] = pTVar6->nRowLogEst;\n      if (-1 < (char)(pSrc->fg).field_0x1) {\n        sPk.pNext = pSrc->pTab->pIndex;\n      }\n    }\n    else {\n      pProbe = pTVar6->pIndex;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n    }\n  }\n  else {\n    pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n  }\n  if ((int)pWVar48 < 0xb) {\n    pWVar8 = pBuilder->pOrSet;\n    pIVar7 = (Index *)0x0;\n  }\n  else {\n    pIVar7 = (Index *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48);\n    pWVar8 = pBuilder->pOrSet;\n  }\n  if ((((((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&\n       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))) &&\n      ((pTVar6->tabFlags & 0x20) == 0)) && (((uint)pSrc->fg & 0x140000) == 0)) {\n    sStack_b2 = (short)pIVar7 + (short)pWVar48;\n    pWVar49 = (WhereInfo *)pWVar25->a;\n    pcVar12 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar27 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pWVar45 = (WhereInfo *)(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6);\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pWVar49;\nLAB_00080e28:\n    pWVar48 = pWVar49;\n    pWVar49 = unaff_s5;\n    unaff_s6 = pTVar6;\n    if (unaff_s5 < pWVar45) {\n      do {\n        pIVar36 = (Index *)pIVar38->aiRowLogEst;\n        pWVar48 = (WhereInfo *)&pWVar49->sorted;\n        unaff_s5 = pWVar48;\n        if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }\n        pWVar49 = pWVar48;\n        if (pWVar45 <= pWVar48) break;\n      } while( true );\n    }\n  }\n  puVar4 = PTR_LAB_0015b6d8;\n  puVar54 = PTR_LAB_0015b6c0;\n  cVar24 = '\0';\n  pWVar45 = pWVar44;\n  pWVar49 = pWVar48;\n  if (pProbe != (Index *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pWVar48 = unaff_s5;\nLAB_0008081c:\n    pIVar36 = (Index *)pProbe->pPartIdxWhere;\n    if (((pIVar36 == (Index *)0x0) ||\n        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)) &&\n       (-1 < (char)pProbe->field_0x38)) {\n      sVar21 = *pProbe->aiRowLogEst;\n      pWVar49 = (WhereInfo *)(int)sVar21;\n      (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum = 0;\n      *(undefined2 *)&pIVar38->aSortOrder = 0;\n      pIVar38->zName = (char *)in_a2;\n      pIVar38->aColExpr = (ExprList *)0x0;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n      *(short *)((int)&pIVar38->pNext + 2) = sVar21;\n      pIVar38->azColl = &pProbe->zName;\n      pIVar38->aiColumn = (i16 *)in_a3;\n      bVar22 = pProbe->field_0x37;\n      bVar29 = bVar22 & 0x20;\n      if ((bVar22 & 0x20) == 0) {\n        pEVar26 = pBuilder->pWInfo->pOrderBy;\n        if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar22 & 0xc0) == 0xc0) {\n        bVar29 = 0;\n        pIVar38->pPartIdxWhere = (Expr *)0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pWVar48;\n    if (pSrc->pIBIndex == (Index *)0x0) {\n      pProbe = pProbe->pNext;\n      goto LAB_00080bf4;\n    }\n  }\n  pWVar48 = unaff_s5;\n  iVar10 = 0;\nLAB_00080a6c:\n  if (piVar5 == *(int **)puVar55) {\n    return iVar10;\n  }\n  pcVar9 = whereLoopAddOr;\n  puVar54 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar55 = puVar54 + 0xe2508;\n  piVar13 = *(int **)(puVar54 + 0xda984);\n  pTStack_e8 = unaff_s6;\n  pIStack_e0 = pProbe;\n  pWStack_f0 = pBuilder;\n  pcStack_dc = pcVar9;\n  pIStack_e4 = pIVar7;\n  pWStack_ec = pWVar48;\n  pWStack_f4 = pWVar49;\n  pWStack_f8 = pWVar45;\n  pSStack_fc = pSrc;\n  pIStack_100 = pIVar38;\n  pWVar25 = (WhereClause *)piVar5[1];\n  puVar50 = (uint *)piVar5[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  pWVar52 = pWVar25->a + pWVar25->nTerm;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  pWVar28 = pWVar25->a;\n  iStack_104 = *piVar13;\n  pWStack_cc = pWVar37;\n  pIStack_d0 = pIVar36;\n  iVar10 = *(int *)(*piVar5 + 4) + 8 + (uint)*(byte *)(puVar50 + 4) * 0x48;\n  iVar14 = *(int *)(iVar10 + 0x28);\n  if (pWVar28 < pWVar52) {\n    iVar15 = *(int *)(puVar54 + 0xda5b4);\n    iVar16 = *(int *)(puVar54 + 0xda630);\n    iVar17 = *(int *)(puVar54 + 0xda66c);\n    puVar54 = puVar55;\n    do {\n      while (((pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0))) {\n        pWVar28 = pWVar28 + 1;\n        if (pWVar52 <= pWVar28) goto LAB_00081208;\n      }\n      WStack_364.pWInfo = (WhereInfo *)*piVar5;\n      WStack_364.pWC = *(WhereClause **)(piVar5 + 1);\n      WStack_364.pNew = (WhereLoop *)piVar5[3];\n      WStack_364.bldFlags = piVar5[5];\n      WStack_364.iPlanLimit = piVar5[6];\n      pWVar18 = (pWVar35->wc).a + (pWVar35->wc).nTerm;\n      WStack_364.pOrderBy = (ExprList *)0x0;\n      pWVar40 = (pWVar35->wc).a;\n      WStack_364.pOrSet = &WStack_310;\n      if (pWVar40 < pWVar18) {\n        iVar53 = 0;\n        bVar3 = true;\n        do {\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        } while (pWVar40 < pWVar18);\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n        if (iVar53 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n      }\n      iVar42 = *(int *)(puVar55 + -0x7ef0);\n      if (uStack_348._0_2_ != 0) {\n        iVar47 = 0;\n        puVar43 = &uStack_348;\n        puVar55 = puVar54;\n        do {\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        } while (iVar47 < (int)(uStack_348 >> 0x10));\n      }\n      pWVar28 = pWVar28 + 1;\n    } while (pWVar28 < pWVar52);\n    iVar53 = 0;\n  }\n  else {\nLAB_00081208:\n    iVar53 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 != *piVar13) {\n    iVar10 = (**(code **)(puVar55 + -0x7ba0))();\n    return iVar10;\n  }\n  return iVar53;\ncode_r0x00080e78:\n  ppWVar32 = *(WhereTerm ***)&pIVar38->szIdxRow;\n  (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->btree).nEq = 1;\n  pIVar38->azColl = (char **)0x0;\n  pIVar38->aColExpr = (ExprList *)&Elf32_Ehdr_00010000;\n  *ppWVar32 = (WhereTerm *)pWVar49;\n  *(short *)((int)&pIVar38->zColAff + 2) = sStack_b2;\n  if ((pTVar6->pSelect == (Select *)0x0) && ((pTVar6->tabFlags & 2) == 0)) {\n    sVar21 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar21 = sStack_b2 + -10;\n  }\n  if (sVar21 < 0) {\n    *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n  }\n  else {\n    *(short *)((int)&pIVar38->zColAff + 2) = sVar21;\n  }\n  *(LogEst *)((int)&pIVar38->pNext + 2) = 0x2b;\n  LVar20 = (*pcVar27)(pIVar7,0x2b);\n  *(LogEst *)&pIVar38->pNext = LVar20;\n  pIVar38->pPartIdxWhere = (Expr *)0x4000;\n  pIVar38->zName = (char *)(pWVar49->iContinue | (uint)in_a2);\n  pIVar38->aiColumn = (i16 *)(pWVar49->iBreak | (uint)in_a3);\n  iVar10 = (*pcVar9)(pBuilder,pIVar38);\n  if (iVar10 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\nLAB_00080b5c:\n  psVar30 = psVar30 + 1;\n  if (psVar31 == psVar30) goto LAB_00080938;\n  if (iVar14 == *psVar30) goto LAB_00080b70;\n  goto LAB_00080b5c;\nLAB_00080938:\n  iVar10 = iVar10 + 1;\n  pEVar39 = pEVar39 + 1;\n  if (pEVar26->nExpr <= iVar10) goto code_r0x00080948;\n  goto LAB_000808d4;\ncode_r0x00080948:\n  bVar22 = pProbe->field_0x37;\nLAB_0008095c:\n  if ((bVar22 & 0xc0) == 0xc0) {\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\nLAB_00080c28:\n    *(short *)&pIVar38->pNext = sVar21 + 0x10;\n    *(byte *)((int)&pIVar38->zColAff + 1) = bVar29;\n    iVar10 = pWVar25->nTerm;\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar22 & 4) == 0) {\n      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;\n      pEVar11 = (Expr *)0x240;\n      if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }\n      pIVar38->pPartIdxWhere = pEVar11;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      uVar23 = cVar24 + '\x01';\nLAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n      *(short *)&pIVar38->pNext = sVar33;\n      if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }\n    }\n    else {\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }\n    iVar10 = pWVar25->nTerm;\n  }\n  pIVar36 = pIVar38;\n  pWVar37 = pWVar49;\n  (*(code *)(puVar54 + -0x4dc4))(iVar10,&pWVar25->a);\n  iVar10 = (*pcVar9)(pBuilder,pIVar38);\n  *(short *)((int)&pIVar38->pNext + 2) = sVar21;\n  if (iVar10 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pWVar37 = (WhereInfo *)0x0;\n  pBuilder->bldFlags = 0;\n  pIVar36 = pProbe;\n  iVar10 = whereLoopAddBtreeIndex(pBuilder,pSrc,pProbe,0);\n  if (pBuilder->bldFlags == 1) {\n    pTVar6->tabFlags = pTVar6->tabFlags | 0x100;\n  }\n  if ((pSrc->pIBIndex != (Index *)0x0) || (pProbe = pProbe->pNext, iVar10 != 0)) goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar24 = cVar24 + '\x01';\n  if (pProbe == (Index *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar22 = pProbe->field_0x37;\n  if ((bVar22 & 0xc0) == 0xc0) {\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\n    bVar29 = cVar24 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar10 = 0;\n  goto LAB_00080a6c;\n}\n\n" (function_definition "int whereLoopAddBtree(WhereLoopBuilder *pBuilder,Bitmask mPrereq)\n\n{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  int *piVar5;\n  Table *pTVar6;\n  Index *pIVar7;\n  WhereOrSet *pWVar8;\n  code *pcVar9;\n  int iVar10;\n  byte bVar22;\n  u8 uVar23;\n  Expr *pEVar11;\n  char cVar24;\n  code *pcVar12;\n  LogEst LVar20;\n  short sVar21;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  WhereTerm *pWVar18;\n  ushort *puVar19;\n  WhereClause *pWVar25;\n  byte bVar29;\n  ExprList *pEVar26;\n  code *pcVar27;\n  WhereTerm *pWVar28;\n  short sVar33;\n  short *psVar30;\n  short *psVar31;\n  WhereTerm **ppWVar32;\n  uint uVar34;\n  WhereOrInfo *pWVar35;\n  Index *in_a2;\n  Index *pIVar36;\n  WhereInfo *in_a3;\n  WhereInfo *pWVar37;\n  Index *pIVar38;\n  ExprList_item *pEVar39;\n  WhereTerm *pWVar40;\n  ushort *puVar41;\n  int iVar42;\n  SrcList_item *pSrc;\n  uint *puVar43;\n  WhereInfo *pWVar44;\n  WhereInfo *pWVar45;\n  uint uVar46;\n  int iVar47;\n  WhereInfo *pWVar48;\n  WhereInfo *pWVar49;\n  uint *puVar50;\n  LogEst *pLVar51;\n  WhereTerm *pWVar52;\n  WhereInfo *unaff_s5;\n  Table *unaff_s6;\n  int iVar53;\n  undefined *puVar54;\n  undefined *puVar55;\n  Index *pProbe;\n  undefined1 *in_stack_fffffc30;\n  undefined4 in_stack_fffffc34;\n  undefined4 in_stack_fffffc3c;\n  WhereLoopBuilder WStack_364;\n  uint uStack_348;\n  undefined4 uStack_344;\n  undefined4 uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  WhereOrSet WStack_310;\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  WhereInfo *pWStack_2a0;\n  WhereClause *pWStack_29c;\n  u8 uStack_298;\n  int iStack_294;\n  WhereTerm *pWStack_28c;\n  int iStack_104;\n  Index *pIStack_100;\n  SrcList_item *pSStack_fc;\n  WhereInfo *pWStack_f8;\n  WhereInfo *pWStack_f4;\n  WhereLoopBuilder *pWStack_f0;\n  WhereInfo *pWStack_ec;\n  Table *pTStack_e8;\n  Index *pIStack_e4;\n  Index *pIStack_e0;\n  code *pcStack_dc;\n  Index *pIStack_d0;\n  WhereInfo *pWStack_cc;\n  undefined4 uStack_c4;\n  short sStack_b2;\n  i16 aiColumnPk;\n  Index sPk;\n  LogEst aiRowEstPk [2];\n  \n  puVar55 = PTR___stack_chk_guard_0015ba2c;\n  pIVar38 = (Index *)pBuilder->pNew;\n  pWVar25 = pBuilder->pWC;\n  pWVar44 = pBuilder->pWInfo;\n  piVar5 = *(int **)PTR___stack_chk_guard_0015ba2c;\n  aiColumnPk = -1;\n  pSrc = (SrcList_item *)\n         ((int)((WhereClause *)pWVar44->pTabList)->aStatic +\n         (uint)*(byte *)&pIVar38->zColAff * 0x48 + -0x10);\n  pTVar6 = pSrc->pTab;\n  pProbe = pSrc->pIBIndex;\n  pIVar36 = in_a2;\n  pWVar37 = in_a3;\n  if (pProbe == (Index *)0x0) {\n    if ((pTVar6->tabFlags & 0x20) == 0) {\n      pProbe = &sPk;\n      pIVar36 = (Index *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(pProbe,0);\n      sPk.nKeyCol = 1;\n      sPk.nColumn = 1;\n      sPk.pTable = pTVar6;\n      sPk.onError = '\x05';\n      aiRowEstPk[1] = 0;\n      sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0;\n      sPk.szIdxRow = pTVar6->szTabRow;\n      sPk.aiColumn = &aiColumnPk;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n      sPk.aiRowLogEst = aiRowEstPk;\n      aiRowEstPk[0] = pTVar6->nRowLogEst;\n      if (-1 < (char)(pSrc->fg).field_0x1) {\n        sPk.pNext = pSrc->pTab->pIndex;\n      }\n    }\n    else {\n      pProbe = pTVar6->pIndex;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n    }\n  }\n  else {\n    pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n  }\n  if ((int)pWVar48 < 0xb) {\n    pWVar8 = pBuilder->pOrSet;\n    pIVar7 = (Index *)0x0;\n  }\n  else {\n    pIVar7 = (Index *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48);\n    pWVar8 = pBuilder->pOrSet;\n  }\n  if ((((((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&\n       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))) &&\n      ((pTVar6->tabFlags & 0x20) == 0)) && (((uint)pSrc->fg & 0x140000) == 0)) {\n    sStack_b2 = (short)pIVar7 + (short)pWVar48;\n    pWVar49 = (WhereInfo *)pWVar25->a;\n    pcVar12 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar27 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pWVar45 = (WhereInfo *)(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6);\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pWVar49;\nLAB_00080e28:\n    pWVar48 = pWVar49;\n    pWVar49 = unaff_s5;\n    unaff_s6 = pTVar6;\n    if (unaff_s5 < pWVar45) {\n      do {\n        pIVar36 = (Index *)pIVar38->aiRowLogEst;\n        pWVar48 = (WhereInfo *)&pWVar49->sorted;\n        unaff_s5 = pWVar48;\n        if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }\n        pWVar49 = pWVar48;\n        if (pWVar45 <= pWVar48) break;\n      } while( true );\n    }\n  }\n  puVar4 = PTR_LAB_0015b6d8;\n  puVar54 = PTR_LAB_0015b6c0;\n  cVar24 = '\0';\n  pWVar45 = pWVar44;\n  pWVar49 = pWVar48;\n  if (pProbe != (Index *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pWVar48 = unaff_s5;\nLAB_0008081c:\n    pIVar36 = (Index *)pProbe->pPartIdxWhere;\n    if (((pIVar36 == (Index *)0x0) ||\n        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)) &&\n       (-1 < (char)pProbe->field_0x38)) {\n      sVar21 = *pProbe->aiRowLogEst;\n      pWVar49 = (WhereInfo *)(int)sVar21;\n      (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum = 0;\n      *(undefined2 *)&pIVar38->aSortOrder = 0;\n      pIVar38->zName = (char *)in_a2;\n      pIVar38->aColExpr = (ExprList *)0x0;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n      *(short *)((int)&pIVar38->pNext + 2) = sVar21;\n      pIVar38->azColl = &pProbe->zName;\n      pIVar38->aiColumn = (i16 *)in_a3;\n      bVar22 = pProbe->field_0x37;\n      bVar29 = bVar22 & 0x20;\n      if ((bVar22 & 0x20) == 0) {\n        pEVar26 = pBuilder->pWInfo->pOrderBy;\n        if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar22 & 0xc0) == 0xc0) {\n        bVar29 = 0;\n        pIVar38->pPartIdxWhere = (Expr *)0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pWVar48;\n    if (pSrc->pIBIndex == (Index *)0x0) {\n      pProbe = pProbe->pNext;\n      goto LAB_00080bf4;\n    }\n  }\n  pWVar48 = unaff_s5;\n  iVar10 = 0;\nLAB_00080a6c:\n  if (piVar5 == *(int **)puVar55) {\n    return iVar10;\n  }\n  pcVar9 = whereLoopAddOr;\n  puVar54 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar55 = puVar54 + 0xe2508;\n  piVar13 = *(int **)(puVar54 + 0xda984);\n  pTStack_e8 = unaff_s6;\n  pIStack_e0 = pProbe;\n  pWStack_f0 = pBuilder;\n  pcStack_dc = pcVar9;\n  pIStack_e4 = pIVar7;\n  pWStack_ec = pWVar48;\n  pWStack_f4 = pWVar49;\n  pWStack_f8 = pWVar45;\n  pSStack_fc = pSrc;\n  pIStack_100 = pIVar38;\n  pWVar25 = (WhereClause *)piVar5[1];\n  puVar50 = (uint *)piVar5[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  pWVar52 = pWVar25->a + pWVar25->nTerm;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  pWVar28 = pWVar25->a;\n  iStack_104 = *piVar13;\n  pWStack_cc = pWVar37;\n  pIStack_d0 = pIVar36;\n  iVar10 = *(int *)(*piVar5 + 4) + 8 + (uint)*(byte *)(puVar50 + 4) * 0x48;\n  iVar14 = *(int *)(iVar10 + 0x28);\n  if (pWVar28 < pWVar52) {\n    iVar15 = *(int *)(puVar54 + 0xda5b4);\n    iVar16 = *(int *)(puVar54 + 0xda630);\n    iVar17 = *(int *)(puVar54 + 0xda66c);\n    puVar54 = puVar55;\n    do {\n      while (((pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0))) {\n        pWVar28 = pWVar28 + 1;\n        if (pWVar52 <= pWVar28) goto LAB_00081208;\n      }\n      WStack_364.pWInfo = (WhereInfo *)*piVar5;\n      WStack_364.pWC = *(WhereClause **)(piVar5 + 1);\n      WStack_364.pNew = (WhereLoop *)piVar5[3];\n      WStack_364.bldFlags = piVar5[5];\n      WStack_364.iPlanLimit = piVar5[6];\n      pWVar18 = (pWVar35->wc).a + (pWVar35->wc).nTerm;\n      WStack_364.pOrderBy = (ExprList *)0x0;\n      pWVar40 = (pWVar35->wc).a;\n      WStack_364.pOrSet = &WStack_310;\n      if (pWVar40 < pWVar18) {\n        iVar53 = 0;\n        bVar3 = true;\n        do {\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        } while (pWVar40 < pWVar18);\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n        if (iVar53 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n      }\n      iVar42 = *(int *)(puVar55 + -0x7ef0);\n      if (uStack_348._0_2_ != 0) {\n        iVar47 = 0;\n        puVar43 = &uStack_348;\n        puVar55 = puVar54;\n        do {\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        } while (iVar47 < (int)(uStack_348 >> 0x10));\n      }\n      pWVar28 = pWVar28 + 1;\n    } while (pWVar28 < pWVar52);\n    iVar53 = 0;\n  }\n  else {\nLAB_00081208:\n    iVar53 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 != *piVar13) {\n    iVar10 = (**(code **)(puVar55 + -0x7ba0))();\n    return iVar10;\n  }\n  return iVar53;\ncode_r0x00080e78:\n  ppWVar32 = *(WhereTerm ***)&pIVar38->szIdxRow;\n  (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->btree).nEq = 1;\n  pIVar38->azColl = (char **)0x0;\n  pIVar38->aColExpr = (ExprList *)&Elf32_Ehdr_00010000;\n  *ppWVar32 = (WhereTerm *)pWVar49;\n  *(short *)((int)&pIVar38->zColAff + 2) = sStack_b2;\n  if ((pTVar6->pSelect == (Select *)0x0) && ((pTVar6->tabFlags & 2) == 0)) {\n    sVar21 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar21 = sStack_b2 + -10;\n  }\n  if (sVar21 < 0) {\n    *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n  }\n  else {\n    *(short *)((int)&pIVar38->zColAff + 2) = sVar21;\n  }\n  *(LogEst *)((int)&pIVar38->pNext + 2) = 0x2b;\n  LVar20 = (*pcVar27)(pIVar7,0x2b);\n  *(LogEst *)&pIVar38->pNext = LVar20;\n  pIVar38->pPartIdxWhere = (Expr *)0x4000;\n  pIVar38->zName = (char *)(pWVar49->iContinue | (uint)in_a2);\n  pIVar38->aiColumn = (i16 *)(pWVar49->iBreak | (uint)in_a3);\n  iVar10 = (*pcVar9)(pBuilder,pIVar38);\n  if (iVar10 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\nLAB_00080b5c:\n  psVar30 = psVar30 + 1;\n  if (psVar31 == psVar30) goto LAB_00080938;\n  if (iVar14 == *psVar30) goto LAB_00080b70;\n  goto LAB_00080b5c;\nLAB_00080938:\n  iVar10 = iVar10 + 1;\n  pEVar39 = pEVar39 + 1;\n  if (pEVar26->nExpr <= iVar10) goto code_r0x00080948;\n  goto LAB_000808d4;\ncode_r0x00080948:\n  bVar22 = pProbe->field_0x37;\nLAB_0008095c:\n  if ((bVar22 & 0xc0) == 0xc0) {\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\nLAB_00080c28:\n    *(short *)&pIVar38->pNext = sVar21 + 0x10;\n    *(byte *)((int)&pIVar38->zColAff + 1) = bVar29;\n    iVar10 = pWVar25->nTerm;\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar22 & 4) == 0) {\n      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;\n      pEVar11 = (Expr *)0x240;\n      if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }\n      pIVar38->pPartIdxWhere = pEVar11;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      uVar23 = cVar24 + '\x01';\nLAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n      *(short *)&pIVar38->pNext = sVar33;\n      if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }\n    }\n    else {\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }\n    iVar10 = pWVar25->nTerm;\n  }\n  pIVar36 = pIVar38;\n  pWVar37 = pWVar49;\n  (*(code *)(puVar54 + -0x4dc4))(iVar10,&pWVar25->a);\n  iVar10 = (*pcVar9)(pBuilder,pIVar38);\n  *(short *)((int)&pIVar38->pNext + 2) = sVar21;\n  if (iVar10 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pWVar37 = (WhereInfo *)0x0;\n  pBuilder->bldFlags = 0;\n  pIVar36 = pProbe;\n  iVar10 = whereLoopAddBtreeIndex(pBuilder,pSrc,pProbe,0);\n  if (pBuilder->bldFlags == 1) {\n    pTVar6->tabFlags = pTVar6->tabFlags | 0x100;\n  }\n  if ((pSrc->pIBIndex != (Index *)0x0) || (pProbe = pProbe->pNext, iVar10 != 0)) goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar24 = cVar24 + '\x01';\n  if (pProbe == (Index *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar22 = pProbe->field_0x37;\n  if ((bVar22 & 0xc0) == 0xc0) {\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\n    bVar29 = cVar24 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar10 = 0;\n  goto LAB_00080a6c;\n}" primitive_type (function_declarator "whereLoopAddBtree(WhereLoopBuilder *pBuilder,Bitmask mPrereq)" identifier (parameter_list "(WhereLoopBuilder *pBuilder,Bitmask mPrereq)" ( (parameter_declaration "WhereLoopBuilder *pBuilder" type_identifier (pointer_declarator "*pBuilder" * identifier)) , (parameter_declaration "Bitmask mPrereq" type_identifier identifier) ))) (compound_statement "{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  int *piVar5;\n  Table *pTVar6;\n  Index *pIVar7;\n  WhereOrSet *pWVar8;\n  code *pcVar9;\n  int iVar10;\n  byte bVar22;\n  u8 uVar23;\n  Expr *pEVar11;\n  char cVar24;\n  code *pcVar12;\n  LogEst LVar20;\n  short sVar21;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  WhereTerm *pWVar18;\n  ushort *puVar19;\n  WhereClause *pWVar25;\n  byte bVar29;\n  ExprList *pEVar26;\n  code *pcVar27;\n  WhereTerm *pWVar28;\n  short sVar33;\n  short *psVar30;\n  short *psVar31;\n  WhereTerm **ppWVar32;\n  uint uVar34;\n  WhereOrInfo *pWVar35;\n  Index *in_a2;\n  Index *pIVar36;\n  WhereInfo *in_a3;\n  WhereInfo *pWVar37;\n  Index *pIVar38;\n  ExprList_item *pEVar39;\n  WhereTerm *pWVar40;\n  ushort *puVar41;\n  int iVar42;\n  SrcList_item *pSrc;\n  uint *puVar43;\n  WhereInfo *pWVar44;\n  WhereInfo *pWVar45;\n  uint uVar46;\n  int iVar47;\n  WhereInfo *pWVar48;\n  WhereInfo *pWVar49;\n  uint *puVar50;\n  LogEst *pLVar51;\n  WhereTerm *pWVar52;\n  WhereInfo *unaff_s5;\n  Table *unaff_s6;\n  int iVar53;\n  undefined *puVar54;\n  undefined *puVar55;\n  Index *pProbe;\n  undefined1 *in_stack_fffffc30;\n  undefined4 in_stack_fffffc34;\n  undefined4 in_stack_fffffc3c;\n  WhereLoopBuilder WStack_364;\n  uint uStack_348;\n  undefined4 uStack_344;\n  undefined4 uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  WhereOrSet WStack_310;\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  WhereInfo *pWStack_2a0;\n  WhereClause *pWStack_29c;\n  u8 uStack_298;\n  int iStack_294;\n  WhereTerm *pWStack_28c;\n  int iStack_104;\n  Index *pIStack_100;\n  SrcList_item *pSStack_fc;\n  WhereInfo *pWStack_f8;\n  WhereInfo *pWStack_f4;\n  WhereLoopBuilder *pWStack_f0;\n  WhereInfo *pWStack_ec;\n  Table *pTStack_e8;\n  Index *pIStack_e4;\n  Index *pIStack_e0;\n  code *pcStack_dc;\n  Index *pIStack_d0;\n  WhereInfo *pWStack_cc;\n  undefined4 uStack_c4;\n  short sStack_b2;\n  i16 aiColumnPk;\n  Index sPk;\n  LogEst aiRowEstPk [2];\n  \n  puVar55 = PTR___stack_chk_guard_0015ba2c;\n  pIVar38 = (Index *)pBuilder->pNew;\n  pWVar25 = pBuilder->pWC;\n  pWVar44 = pBuilder->pWInfo;\n  piVar5 = *(int **)PTR___stack_chk_guard_0015ba2c;\n  aiColumnPk = -1;\n  pSrc = (SrcList_item *)\n         ((int)((WhereClause *)pWVar44->pTabList)->aStatic +\n         (uint)*(byte *)&pIVar38->zColAff * 0x48 + -0x10);\n  pTVar6 = pSrc->pTab;\n  pProbe = pSrc->pIBIndex;\n  pIVar36 = in_a2;\n  pWVar37 = in_a3;\n  if (pProbe == (Index *)0x0) {\n    if ((pTVar6->tabFlags & 0x20) == 0) {\n      pProbe = &sPk;\n      pIVar36 = (Index *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(pProbe,0);\n      sPk.nKeyCol = 1;\n      sPk.nColumn = 1;\n      sPk.pTable = pTVar6;\n      sPk.onError = '\x05';\n      aiRowEstPk[1] = 0;\n      sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0;\n      sPk.szIdxRow = pTVar6->szTabRow;\n      sPk.aiColumn = &aiColumnPk;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n      sPk.aiRowLogEst = aiRowEstPk;\n      aiRowEstPk[0] = pTVar6->nRowLogEst;\n      if (-1 < (char)(pSrc->fg).field_0x1) {\n        sPk.pNext = pSrc->pTab->pIndex;\n      }\n    }\n    else {\n      pProbe = pTVar6->pIndex;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n    }\n  }\n  else {\n    pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n  }\n  if ((int)pWVar48 < 0xb) {\n    pWVar8 = pBuilder->pOrSet;\n    pIVar7 = (Index *)0x0;\n  }\n  else {\n    pIVar7 = (Index *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48);\n    pWVar8 = pBuilder->pOrSet;\n  }\n  if ((((((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&\n       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))) &&\n      ((pTVar6->tabFlags & 0x20) == 0)) && (((uint)pSrc->fg & 0x140000) == 0)) {\n    sStack_b2 = (short)pIVar7 + (short)pWVar48;\n    pWVar49 = (WhereInfo *)pWVar25->a;\n    pcVar12 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar27 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pWVar45 = (WhereInfo *)(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6);\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pWVar49;\nLAB_00080e28:\n    pWVar48 = pWVar49;\n    pWVar49 = unaff_s5;\n    unaff_s6 = pTVar6;\n    if (unaff_s5 < pWVar45) {\n      do {\n        pIVar36 = (Index *)pIVar38->aiRowLogEst;\n        pWVar48 = (WhereInfo *)&pWVar49->sorted;\n        unaff_s5 = pWVar48;\n        if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }\n        pWVar49 = pWVar48;\n        if (pWVar45 <= pWVar48) break;\n      } while( true );\n    }\n  }\n  puVar4 = PTR_LAB_0015b6d8;\n  puVar54 = PTR_LAB_0015b6c0;\n  cVar24 = '\0';\n  pWVar45 = pWVar44;\n  pWVar49 = pWVar48;\n  if (pProbe != (Index *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pWVar48 = unaff_s5;\nLAB_0008081c:\n    pIVar36 = (Index *)pProbe->pPartIdxWhere;\n    if (((pIVar36 == (Index *)0x0) ||\n        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)) &&\n       (-1 < (char)pProbe->field_0x38)) {\n      sVar21 = *pProbe->aiRowLogEst;\n      pWVar49 = (WhereInfo *)(int)sVar21;\n      (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum = 0;\n      *(undefined2 *)&pIVar38->aSortOrder = 0;\n      pIVar38->zName = (char *)in_a2;\n      pIVar38->aColExpr = (ExprList *)0x0;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n      *(short *)((int)&pIVar38->pNext + 2) = sVar21;\n      pIVar38->azColl = &pProbe->zName;\n      pIVar38->aiColumn = (i16 *)in_a3;\n      bVar22 = pProbe->field_0x37;\n      bVar29 = bVar22 & 0x20;\n      if ((bVar22 & 0x20) == 0) {\n        pEVar26 = pBuilder->pWInfo->pOrderBy;\n        if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar22 & 0xc0) == 0xc0) {\n        bVar29 = 0;\n        pIVar38->pPartIdxWhere = (Expr *)0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pWVar48;\n    if (pSrc->pIBIndex == (Index *)0x0) {\n      pProbe = pProbe->pNext;\n      goto LAB_00080bf4;\n    }\n  }\n  pWVar48 = unaff_s5;\n  iVar10 = 0;\nLAB_00080a6c:\n  if (piVar5 == *(int **)puVar55) {\n    return iVar10;\n  }\n  pcVar9 = whereLoopAddOr;\n  puVar54 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar55 = puVar54 + 0xe2508;\n  piVar13 = *(int **)(puVar54 + 0xda984);\n  pTStack_e8 = unaff_s6;\n  pIStack_e0 = pProbe;\n  pWStack_f0 = pBuilder;\n  pcStack_dc = pcVar9;\n  pIStack_e4 = pIVar7;\n  pWStack_ec = pWVar48;\n  pWStack_f4 = pWVar49;\n  pWStack_f8 = pWVar45;\n  pSStack_fc = pSrc;\n  pIStack_100 = pIVar38;\n  pWVar25 = (WhereClause *)piVar5[1];\n  puVar50 = (uint *)piVar5[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  pWVar52 = pWVar25->a + pWVar25->nTerm;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  pWVar28 = pWVar25->a;\n  iStack_104 = *piVar13;\n  pWStack_cc = pWVar37;\n  pIStack_d0 = pIVar36;\n  iVar10 = *(int *)(*piVar5 + 4) + 8 + (uint)*(byte *)(puVar50 + 4) * 0x48;\n  iVar14 = *(int *)(iVar10 + 0x28);\n  if (pWVar28 < pWVar52) {\n    iVar15 = *(int *)(puVar54 + 0xda5b4);\n    iVar16 = *(int *)(puVar54 + 0xda630);\n    iVar17 = *(int *)(puVar54 + 0xda66c);\n    puVar54 = puVar55;\n    do {\n      while (((pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0))) {\n        pWVar28 = pWVar28 + 1;\n        if (pWVar52 <= pWVar28) goto LAB_00081208;\n      }\n      WStack_364.pWInfo = (WhereInfo *)*piVar5;\n      WStack_364.pWC = *(WhereClause **)(piVar5 + 1);\n      WStack_364.pNew = (WhereLoop *)piVar5[3];\n      WStack_364.bldFlags = piVar5[5];\n      WStack_364.iPlanLimit = piVar5[6];\n      pWVar18 = (pWVar35->wc).a + (pWVar35->wc).nTerm;\n      WStack_364.pOrderBy = (ExprList *)0x0;\n      pWVar40 = (pWVar35->wc).a;\n      WStack_364.pOrSet = &WStack_310;\n      if (pWVar40 < pWVar18) {\n        iVar53 = 0;\n        bVar3 = true;\n        do {\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        } while (pWVar40 < pWVar18);\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n        if (iVar53 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n      }\n      iVar42 = *(int *)(puVar55 + -0x7ef0);\n      if (uStack_348._0_2_ != 0) {\n        iVar47 = 0;\n        puVar43 = &uStack_348;\n        puVar55 = puVar54;\n        do {\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        } while (iVar47 < (int)(uStack_348 >> 0x10));\n      }\n      pWVar28 = pWVar28 + 1;\n    } while (pWVar28 < pWVar52);\n    iVar53 = 0;\n  }\n  else {\nLAB_00081208:\n    iVar53 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 != *piVar13) {\n    iVar10 = (**(code **)(puVar55 + -0x7ba0))();\n    return iVar10;\n  }\n  return iVar53;\ncode_r0x00080e78:\n  ppWVar32 = *(WhereTerm ***)&pIVar38->szIdxRow;\n  (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->btree).nEq = 1;\n  pIVar38->azColl = (char **)0x0;\n  pIVar38->aColExpr = (ExprList *)&Elf32_Ehdr_00010000;\n  *ppWVar32 = (WhereTerm *)pWVar49;\n  *(short *)((int)&pIVar38->zColAff + 2) = sStack_b2;\n  if ((pTVar6->pSelect == (Select *)0x0) && ((pTVar6->tabFlags & 2) == 0)) {\n    sVar21 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar21 = sStack_b2 + -10;\n  }\n  if (sVar21 < 0) {\n    *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n  }\n  else {\n    *(short *)((int)&pIVar38->zColAff + 2) = sVar21;\n  }\n  *(LogEst *)((int)&pIVar38->pNext + 2) = 0x2b;\n  LVar20 = (*pcVar27)(pIVar7,0x2b);\n  *(LogEst *)&pIVar38->pNext = LVar20;\n  pIVar38->pPartIdxWhere = (Expr *)0x4000;\n  pIVar38->zName = (char *)(pWVar49->iContinue | (uint)in_a2);\n  pIVar38->aiColumn = (i16 *)(pWVar49->iBreak | (uint)in_a3);\n  iVar10 = (*pcVar9)(pBuilder,pIVar38);\n  if (iVar10 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\nLAB_00080b5c:\n  psVar30 = psVar30 + 1;\n  if (psVar31 == psVar30) goto LAB_00080938;\n  if (iVar14 == *psVar30) goto LAB_00080b70;\n  goto LAB_00080b5c;\nLAB_00080938:\n  iVar10 = iVar10 + 1;\n  pEVar39 = pEVar39 + 1;\n  if (pEVar26->nExpr <= iVar10) goto code_r0x00080948;\n  goto LAB_000808d4;\ncode_r0x00080948:\n  bVar22 = pProbe->field_0x37;\nLAB_0008095c:\n  if ((bVar22 & 0xc0) == 0xc0) {\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\nLAB_00080c28:\n    *(short *)&pIVar38->pNext = sVar21 + 0x10;\n    *(byte *)((int)&pIVar38->zColAff + 1) = bVar29;\n    iVar10 = pWVar25->nTerm;\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar22 & 4) == 0) {\n      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;\n      pEVar11 = (Expr *)0x240;\n      if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }\n      pIVar38->pPartIdxWhere = pEVar11;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      uVar23 = cVar24 + '\x01';\nLAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n      *(short *)&pIVar38->pNext = sVar33;\n      if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }\n    }\n    else {\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }\n    iVar10 = pWVar25->nTerm;\n  }\n  pIVar36 = pIVar38;\n  pWVar37 = pWVar49;\n  (*(code *)(puVar54 + -0x4dc4))(iVar10,&pWVar25->a);\n  iVar10 = (*pcVar9)(pBuilder,pIVar38);\n  *(short *)((int)&pIVar38->pNext + 2) = sVar21;\n  if (iVar10 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pWVar37 = (WhereInfo *)0x0;\n  pBuilder->bldFlags = 0;\n  pIVar36 = pProbe;\n  iVar10 = whereLoopAddBtreeIndex(pBuilder,pSrc,pProbe,0);\n  if (pBuilder->bldFlags == 1) {\n    pTVar6->tabFlags = pTVar6->tabFlags | 0x100;\n  }\n  if ((pSrc->pIBIndex != (Index *)0x0) || (pProbe = pProbe->pNext, iVar10 != 0)) goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar24 = cVar24 + '\x01';\n  if (pProbe == (Index *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar22 = pProbe->field_0x37;\n  if ((bVar22 & 0xc0) == 0xc0) {\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\n    bVar29 = cVar24 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar10 = 0;\n  goto LAB_00080a6c;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "Table *pTVar6;" type_identifier (pointer_declarator "*pTVar6" * identifier) ;) (declaration "Index *pIVar7;" type_identifier (pointer_declarator "*pIVar7" * identifier) ;) (declaration "WhereOrSet *pWVar8;" type_identifier (pointer_declarator "*pWVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "u8 uVar23;" type_identifier identifier ;) (declaration "Expr *pEVar11;" type_identifier (pointer_declarator "*pEVar11" * identifier) ;) (declaration "char cVar24;" primitive_type identifier ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "LogEst LVar20;" type_identifier identifier ;) (declaration "short sVar21;" (sized_type_specifier "short" short) identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "WhereTerm *pWVar18;" type_identifier (pointer_declarator "*pWVar18" * identifier) ;) (declaration "ushort *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "WhereClause *pWVar25;" type_identifier (pointer_declarator "*pWVar25" * identifier) ;) (declaration "byte bVar29;" type_identifier identifier ;) (declaration "ExprList *pEVar26;" type_identifier (pointer_declarator "*pEVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "WhereTerm *pWVar28;" type_identifier (pointer_declarator "*pWVar28" * identifier) ;) (declaration "short sVar33;" (sized_type_specifier "short" short) identifier ;) (declaration "short *psVar30;" (sized_type_specifier "short" short) (pointer_declarator "*psVar30" * identifier) ;) (declaration "short *psVar31;" (sized_type_specifier "short" short) (pointer_declarator "*psVar31" * identifier) ;) (declaration "WhereTerm **ppWVar32;" type_identifier (pointer_declarator "**ppWVar32" * (pointer_declarator "*ppWVar32" * identifier)) ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "WhereOrInfo *pWVar35;" type_identifier (pointer_declarator "*pWVar35" * identifier) ;) (declaration "Index *in_a2;" type_identifier (pointer_declarator "*in_a2" * identifier) ;) (declaration "Index *pIVar36;" type_identifier (pointer_declarator "*pIVar36" * identifier) ;) (declaration "WhereInfo *in_a3;" type_identifier (pointer_declarator "*in_a3" * identifier) ;) (declaration "WhereInfo *pWVar37;" type_identifier (pointer_declarator "*pWVar37" * identifier) ;) (declaration "Index *pIVar38;" type_identifier (pointer_declarator "*pIVar38" * identifier) ;) (declaration "ExprList_item *pEVar39;" type_identifier (pointer_declarator "*pEVar39" * identifier) ;) (declaration "WhereTerm *pWVar40;" type_identifier (pointer_declarator "*pWVar40" * identifier) ;) (declaration "ushort *puVar41;" type_identifier (pointer_declarator "*puVar41" * identifier) ;) (declaration "int iVar42;" primitive_type identifier ;) (declaration "SrcList_item *pSrc;" type_identifier (pointer_declarator "*pSrc" * identifier) ;) (declaration "uint *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "WhereInfo *pWVar44;" type_identifier (pointer_declarator "*pWVar44" * identifier) ;) (declaration "WhereInfo *pWVar45;" type_identifier (pointer_declarator "*pWVar45" * identifier) ;) (declaration "uint uVar46;" type_identifier identifier ;) (declaration "int iVar47;" primitive_type identifier ;) (declaration "WhereInfo *pWVar48;" type_identifier (pointer_declarator "*pWVar48" * identifier) ;) (declaration "WhereInfo *pWVar49;" type_identifier (pointer_declarator "*pWVar49" * identifier) ;) (declaration "uint *puVar50;" type_identifier (pointer_declarator "*puVar50" * identifier) ;) (declaration "LogEst *pLVar51;" type_identifier (pointer_declarator "*pLVar51" * identifier) ;) (declaration "WhereTerm *pWVar52;" type_identifier (pointer_declarator "*pWVar52" * identifier) ;) (declaration "WhereInfo *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "Table *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar53;" primitive_type identifier ;) (declaration "undefined *puVar54;" type_identifier (pointer_declarator "*puVar54" * identifier) ;) (declaration "undefined *puVar55;" type_identifier (pointer_declarator "*puVar55" * identifier) ;) (declaration "Index *pProbe;" type_identifier (pointer_declarator "*pProbe" * identifier) ;) (declaration "undefined1 *in_stack_fffffc30;" type_identifier (pointer_declarator "*in_stack_fffffc30" * identifier) ;) (declaration "undefined4 in_stack_fffffc34;" type_identifier identifier ;) (declaration "undefined4 in_stack_fffffc3c;" type_identifier identifier ;) (declaration "WhereLoopBuilder WStack_364;" type_identifier identifier ;) (declaration "uint uStack_348;" type_identifier identifier ;) (declaration "undefined4 uStack_344;" type_identifier identifier ;) (declaration "undefined4 uStack_340;" type_identifier identifier ;) (declaration "undefined4 uStack_33c;" type_identifier identifier ;) (declaration "undefined4 uStack_338;" type_identifier identifier ;) (declaration "undefined4 uStack_334;" type_identifier identifier ;) (declaration "undefined4 uStack_330;" type_identifier identifier ;) (declaration "undefined4 uStack_32c;" type_identifier identifier ;) (declaration "undefined4 uStack_328;" type_identifier identifier ;) (declaration "undefined4 uStack_324;" type_identifier identifier ;) (declaration "undefined4 uStack_320;" type_identifier identifier ;) (declaration "undefined4 uStack_31c;" type_identifier identifier ;) (declaration "undefined4 uStack_318;" type_identifier identifier ;) (declaration "undefined4 uStack_314;" type_identifier identifier ;) (declaration "WhereOrSet WStack_310;" type_identifier identifier ;) (declaration "ushort auStack_2d8 [4];" type_identifier (array_declarator "auStack_2d8 [4]" identifier [ number_literal ]) ;) (declaration "uint auStack_2d0 [2];" type_identifier (array_declarator "auStack_2d0 [2]" identifier [ number_literal ]) ;) (declaration "ushort auStack_2c8 [20];" type_identifier (array_declarator "auStack_2c8 [20]" identifier [ number_literal ]) ;) (declaration "WhereInfo *pWStack_2a0;" type_identifier (pointer_declarator "*pWStack_2a0" * identifier) ;) (declaration "WhereClause *pWStack_29c;" type_identifier (pointer_declarator "*pWStack_29c" * identifier) ;) (declaration "u8 uStack_298;" type_identifier identifier ;) (declaration "int iStack_294;" primitive_type identifier ;) (declaration "WhereTerm *pWStack_28c;" type_identifier (pointer_declarator "*pWStack_28c" * identifier) ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "Index *pIStack_100;" type_identifier (pointer_declarator "*pIStack_100" * identifier) ;) (declaration "SrcList_item *pSStack_fc;" type_identifier (pointer_declarator "*pSStack_fc" * identifier) ;) (declaration "WhereInfo *pWStack_f8;" type_identifier (pointer_declarator "*pWStack_f8" * identifier) ;) (declaration "WhereInfo *pWStack_f4;" type_identifier (pointer_declarator "*pWStack_f4" * identifier) ;) (declaration "WhereLoopBuilder *pWStack_f0;" type_identifier (pointer_declarator "*pWStack_f0" * identifier) ;) (declaration "WhereInfo *pWStack_ec;" type_identifier (pointer_declarator "*pWStack_ec" * identifier) ;) (declaration "Table *pTStack_e8;" type_identifier (pointer_declarator "*pTStack_e8" * identifier) ;) (declaration "Index *pIStack_e4;" type_identifier (pointer_declarator "*pIStack_e4" * identifier) ;) (declaration "Index *pIStack_e0;" type_identifier (pointer_declarator "*pIStack_e0" * identifier) ;) (declaration "code *pcStack_dc;" type_identifier (pointer_declarator "*pcStack_dc" * identifier) ;) (declaration "Index *pIStack_d0;" type_identifier (pointer_declarator "*pIStack_d0" * identifier) ;) (declaration "WhereInfo *pWStack_cc;" type_identifier (pointer_declarator "*pWStack_cc" * identifier) ;) (declaration "undefined4 uStack_c4;" type_identifier identifier ;) (declaration "short sStack_b2;" (sized_type_specifier "short" short) identifier ;) (declaration "i16 aiColumnPk;" type_identifier identifier ;) (declaration "Index sPk;" type_identifier identifier ;) (declaration "LogEst aiRowEstPk [2];" type_identifier (array_declarator "aiRowEstPk [2]" identifier [ number_literal ]) ;) (expression_statement "puVar55 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar55 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "pIVar38 = (Index *)pBuilder->pNew;" (assignment_expression "pIVar38 = (Index *)pBuilder->pNew" identifier = (cast_expression "(Index *)pBuilder->pNew" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pBuilder->pNew" identifier -> field_identifier))) ;) (expression_statement "pWVar25 = pBuilder->pWC;" (assignment_expression "pWVar25 = pBuilder->pWC" identifier = (field_expression "pBuilder->pWC" identifier -> field_identifier)) ;) (expression_statement "pWVar44 = pBuilder->pWInfo;" (assignment_expression "pWVar44 = pBuilder->pWInfo" identifier = (field_expression "pBuilder->pWInfo" identifier -> field_identifier)) ;) (expression_statement "piVar5 = *(int **)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "piVar5 = *(int **)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int **)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int **)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "aiColumnPk = -1;" (assignment_expression "aiColumnPk = -1" identifier = number_literal) ;) (expression_statement "pSrc = (SrcList_item *)\n         ((int)((WhereClause *)pWVar44->pTabList)->aStatic +\n         (uint)*(byte *)&pIVar38->zColAff * 0x48 + -0x10);" (assignment_expression "pSrc = (SrcList_item *)\n         ((int)((WhereClause *)pWVar44->pTabList)->aStatic +\n         (uint)*(byte *)&pIVar38->zColAff * 0x48 + -0x10)" identifier = (cast_expression "(SrcList_item *)\n         ((int)((WhereClause *)pWVar44->pTabList)->aStatic +\n         (uint)*(byte *)&pIVar38->zColAff * 0x48 + -0x10)" ( (type_descriptor "SrcList_item *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((WhereClause *)pWVar44->pTabList)->aStatic +\n         (uint)*(byte *)&pIVar38->zColAff * 0x48 + -0x10)" ( (binary_expression "(int)((WhereClause *)pWVar44->pTabList)->aStatic +\n         (uint)*(byte *)&pIVar38->zColAff * 0x48 + -0x10" (binary_expression "(int)((WhereClause *)pWVar44->pTabList)->aStatic +\n         (uint)*(byte *)&pIVar38->zColAff * 0x48" (cast_expression "(int)((WhereClause *)pWVar44->pTabList)->aStatic" ( (type_descriptor "int" primitive_type) ) (field_expression "((WhereClause *)pWVar44->pTabList)->aStatic" (parenthesized_expression "((WhereClause *)pWVar44->pTabList)" ( (cast_expression "(WhereClause *)pWVar44->pTabList" ( (type_descriptor "WhereClause *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pWVar44->pTabList" identifier -> field_identifier)) )) -> field_identifier)) + (binary_expression "(uint)*(byte *)&pIVar38->zColAff * 0x48" (binary_expression "(uint)*(byte *)&pIVar38->zColAff" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&pIVar38->zColAff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar38->zColAff" & (field_expression "pIVar38->zColAff" identifier -> field_identifier)))) * number_literal)) + number_literal) )))) ;) (expression_statement "pTVar6 = pSrc->pTab;" (assignment_expression "pTVar6 = pSrc->pTab" identifier = (field_expression "pSrc->pTab" identifier -> field_identifier)) ;) (expression_statement "pProbe = pSrc->pIBIndex;" (assignment_expression "pProbe = pSrc->pIBIndex" identifier = (field_expression "pSrc->pIBIndex" identifier -> field_identifier)) ;) (expression_statement "pIVar36 = in_a2;" (assignment_expression "pIVar36 = in_a2" identifier = identifier) ;) (expression_statement "pWVar37 = in_a3;" (assignment_expression "pWVar37 = in_a3" identifier = identifier) ;) (if_statement "if (pProbe == (Index *)0x0) {\n    if ((pTVar6->tabFlags & 0x20) == 0) {\n      pProbe = &sPk;\n      pIVar36 = (Index *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(pProbe,0);\n      sPk.nKeyCol = 1;\n      sPk.nColumn = 1;\n      sPk.pTable = pTVar6;\n      sPk.onError = '\x05';\n      aiRowEstPk[1] = 0;\n      sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0;\n      sPk.szIdxRow = pTVar6->szTabRow;\n      sPk.aiColumn = &aiColumnPk;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n      sPk.aiRowLogEst = aiRowEstPk;\n      aiRowEstPk[0] = pTVar6->nRowLogEst;\n      if (-1 < (char)(pSrc->fg).field_0x1) {\n        sPk.pNext = pSrc->pTab->pIndex;\n      }\n    }\n    else {\n      pProbe = pTVar6->pIndex;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n    }\n  }\n  else {\n    pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n  }" if (parenthesized_expression "(pProbe == (Index *)0x0)" ( (binary_expression "pProbe == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((pTVar6->tabFlags & 0x20) == 0) {\n      pProbe = &sPk;\n      pIVar36 = (Index *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(pProbe,0);\n      sPk.nKeyCol = 1;\n      sPk.nColumn = 1;\n      sPk.pTable = pTVar6;\n      sPk.onError = '\x05';\n      aiRowEstPk[1] = 0;\n      sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0;\n      sPk.szIdxRow = pTVar6->szTabRow;\n      sPk.aiColumn = &aiColumnPk;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n      sPk.aiRowLogEst = aiRowEstPk;\n      aiRowEstPk[0] = pTVar6->nRowLogEst;\n      if (-1 < (char)(pSrc->fg).field_0x1) {\n        sPk.pNext = pSrc->pTab->pIndex;\n      }\n    }\n    else {\n      pProbe = pTVar6->pIndex;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n    }\n  }" { (if_statement "if ((pTVar6->tabFlags & 0x20) == 0) {\n      pProbe = &sPk;\n      pIVar36 = (Index *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(pProbe,0);\n      sPk.nKeyCol = 1;\n      sPk.nColumn = 1;\n      sPk.pTable = pTVar6;\n      sPk.onError = '\x05';\n      aiRowEstPk[1] = 0;\n      sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0;\n      sPk.szIdxRow = pTVar6->szTabRow;\n      sPk.aiColumn = &aiColumnPk;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n      sPk.aiRowLogEst = aiRowEstPk;\n      aiRowEstPk[0] = pTVar6->nRowLogEst;\n      if (-1 < (char)(pSrc->fg).field_0x1) {\n        sPk.pNext = pSrc->pTab->pIndex;\n      }\n    }\n    else {\n      pProbe = pTVar6->pIndex;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n    }" if (parenthesized_expression "((pTVar6->tabFlags & 0x20) == 0)" ( (binary_expression "(pTVar6->tabFlags & 0x20) == 0" (parenthesized_expression "(pTVar6->tabFlags & 0x20)" ( (binary_expression "pTVar6->tabFlags & 0x20" (field_expression "pTVar6->tabFlags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      pProbe = &sPk;\n      pIVar36 = (Index *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(pProbe,0);\n      sPk.nKeyCol = 1;\n      sPk.nColumn = 1;\n      sPk.pTable = pTVar6;\n      sPk.onError = '\x05';\n      aiRowEstPk[1] = 0;\n      sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0;\n      sPk.szIdxRow = pTVar6->szTabRow;\n      sPk.aiColumn = &aiColumnPk;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n      sPk.aiRowLogEst = aiRowEstPk;\n      aiRowEstPk[0] = pTVar6->nRowLogEst;\n      if (-1 < (char)(pSrc->fg).field_0x1) {\n        sPk.pNext = pSrc->pTab->pIndex;\n      }\n    }" { (expression_statement "pProbe = &sPk;" (assignment_expression "pProbe = &sPk" identifier = (pointer_expression "&sPk" & identifier)) ;) (expression_statement "pIVar36 = (Index *)0x48;" (assignment_expression "pIVar36 = (Index *)0x48" identifier = (cast_expression "(Index *)0x48" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_memset_0015b9b4)(pProbe,0);" (call_expression "(*(code *)PTR_memset_0015b9b4)(pProbe,0)" (parenthesized_expression "(*(code *)PTR_memset_0015b9b4)" ( (pointer_expression "*(code *)PTR_memset_0015b9b4" * (cast_expression "(code *)PTR_memset_0015b9b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pProbe,0)" ( identifier , number_literal ))) ;) (expression_statement "sPk.nKeyCol = 1;" (assignment_expression "sPk.nKeyCol = 1" (field_expression "sPk.nKeyCol" identifier . field_identifier) = number_literal) ;) (expression_statement "sPk.nColumn = 1;" (assignment_expression "sPk.nColumn = 1" (field_expression "sPk.nColumn" identifier . field_identifier) = number_literal) ;) (expression_statement "sPk.pTable = pTVar6;" (assignment_expression "sPk.pTable = pTVar6" (field_expression "sPk.pTable" identifier . field_identifier) = identifier) ;) (expression_statement "sPk.onError = '\x05';" (assignment_expression "sPk.onError = '\x05'" (field_expression "sPk.onError" identifier . field_identifier) = (char_literal "'\x05'" ' escape_sequence ')) ;) (expression_statement "aiRowEstPk[1] = 0;" (assignment_expression "aiRowEstPk[1] = 0" (subscript_expression "aiRowEstPk[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0;" (assignment_expression "sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0" (field_expression "sPk._55_1_" identifier . field_identifier) = (binary_expression "sPk._55_1_ & 0x3f | 0xc0" (binary_expression "sPk._55_1_ & 0x3f" (field_expression "sPk._55_1_" identifier . field_identifier) & number_literal) | number_literal)) ;) (expression_statement "sPk.szIdxRow = pTVar6->szTabRow;" (assignment_expression "sPk.szIdxRow = pTVar6->szTabRow" (field_expression "sPk.szIdxRow" identifier . field_identifier) = (field_expression "pTVar6->szTabRow" identifier -> field_identifier)) ;) (expression_statement "sPk.aiColumn = &aiColumnPk;" (assignment_expression "sPk.aiColumn = &aiColumnPk" (field_expression "sPk.aiColumn" identifier . field_identifier) = (pointer_expression "&aiColumnPk" & identifier)) ;) (expression_statement "pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;" (assignment_expression "pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst" identifier = (cast_expression "(WhereInfo *)(int)pTVar6->nRowLogEst" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)pTVar6->nRowLogEst" ( (type_descriptor "int" primitive_type) ) (field_expression "pTVar6->nRowLogEst" identifier -> field_identifier)))) ;) (expression_statement "sPk.aiRowLogEst = aiRowEstPk;" (assignment_expression "sPk.aiRowLogEst = aiRowEstPk" (field_expression "sPk.aiRowLogEst" identifier . field_identifier) = identifier) ;) (expression_statement "aiRowEstPk[0] = pTVar6->nRowLogEst;" (assignment_expression "aiRowEstPk[0] = pTVar6->nRowLogEst" (subscript_expression "aiRowEstPk[0]" identifier [ number_literal ]) = (field_expression "pTVar6->nRowLogEst" identifier -> field_identifier)) ;) (if_statement "if (-1 < (char)(pSrc->fg).field_0x1) {\n        sPk.pNext = pSrc->pTab->pIndex;\n      }" if (parenthesized_expression "(-1 < (char)(pSrc->fg).field_0x1)" ( (binary_expression "-1 < (char)(pSrc->fg).field_0x1" number_literal < (cast_expression "(char)(pSrc->fg).field_0x1" ( (type_descriptor "char" primitive_type) ) (field_expression "(pSrc->fg).field_0x1" (parenthesized_expression "(pSrc->fg)" ( (field_expression "pSrc->fg" identifier -> field_identifier) )) . field_identifier))) )) (compound_statement "{\n        sPk.pNext = pSrc->pTab->pIndex;\n      }" { (expression_statement "sPk.pNext = pSrc->pTab->pIndex;" (assignment_expression "sPk.pNext = pSrc->pTab->pIndex" (field_expression "sPk.pNext" identifier . field_identifier) = (field_expression "pSrc->pTab->pIndex" (field_expression "pSrc->pTab" identifier -> field_identifier) -> field_identifier)) ;) })) }) (else_clause "else {\n      pProbe = pTVar6->pIndex;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n    }" else (compound_statement "{\n      pProbe = pTVar6->pIndex;\n      pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n    }" { (expression_statement "pProbe = pTVar6->pIndex;" (assignment_expression "pProbe = pTVar6->pIndex" identifier = (field_expression "pTVar6->pIndex" identifier -> field_identifier)) ;) (expression_statement "pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;" (assignment_expression "pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst" identifier = (cast_expression "(WhereInfo *)(int)pTVar6->nRowLogEst" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)pTVar6->nRowLogEst" ( (type_descriptor "int" primitive_type) ) (field_expression "pTVar6->nRowLogEst" identifier -> field_identifier)))) ;) }))) }) (else_clause "else {\n    pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n  }" else (compound_statement "{\n    pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;\n  }" { (expression_statement "pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst;" (assignment_expression "pWVar48 = (WhereInfo *)(int)pTVar6->nRowLogEst" identifier = (cast_expression "(WhereInfo *)(int)pTVar6->nRowLogEst" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)pTVar6->nRowLogEst" ( (type_descriptor "int" primitive_type) ) (field_expression "pTVar6->nRowLogEst" identifier -> field_identifier)))) ;) }))) (if_statement "if ((int)pWVar48 < 0xb) {\n    pWVar8 = pBuilder->pOrSet;\n    pIVar7 = (Index *)0x0;\n  }\n  else {\n    pIVar7 = (Index *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48);\n    pWVar8 = pBuilder->pOrSet;\n  }" if (parenthesized_expression "((int)pWVar48 < 0xb)" ( (binary_expression "(int)pWVar48 < 0xb" (cast_expression "(int)pWVar48" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pWVar8 = pBuilder->pOrSet;\n    pIVar7 = (Index *)0x0;\n  }" { (expression_statement "pWVar8 = pBuilder->pOrSet;" (assignment_expression "pWVar8 = pBuilder->pOrSet" identifier = (field_expression "pBuilder->pOrSet" identifier -> field_identifier)) ;) (expression_statement "pIVar7 = (Index *)0x0;" (assignment_expression "pIVar7 = (Index *)0x0" identifier = (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pIVar7 = (Index *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48);\n    pWVar8 = pBuilder->pOrSet;\n  }" else (compound_statement "{\n    pIVar7 = (Index *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48);\n    pWVar8 = pBuilder->pOrSet;\n  }" { (expression_statement "pIVar7 = (Index *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48);" (assignment_expression "pIVar7 = (Index *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48)" identifier = (cast_expression "(Index *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48)" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pWVar48)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + 0x5c64)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + 0x5c64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + 0x5c64)" ( (binary_expression "PTR_LAB_0015b6c0 + 0x5c64" identifier + number_literal) )))) )) (argument_list "(pWVar48)" ( identifier ))))) ;) (expression_statement "pWVar8 = pBuilder->pOrSet;" (assignment_expression "pWVar8 = pBuilder->pOrSet" identifier = (field_expression "pBuilder->pOrSet" identifier -> field_identifier)) ;) }))) (if_statement "if ((((((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&\n       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))) &&\n      ((pTVar6->tabFlags & 0x20) == 0)) && (((uint)pSrc->fg & 0x140000) == 0)) {\n    sStack_b2 = (short)pIVar7 + (short)pWVar48;\n    pWVar49 = (WhereInfo *)pWVar25->a;\n    pcVar12 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar27 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pWVar45 = (WhereInfo *)(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6);\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pWVar49;\nLAB_00080e28:\n    pWVar48 = pWVar49;\n    pWVar49 = unaff_s5;\n    unaff_s6 = pTVar6;\n    if (unaff_s5 < pWVar45) {\n      do {\n        pIVar36 = (Index *)pIVar38->aiRowLogEst;\n        pWVar48 = (WhereInfo *)&pWVar49->sorted;\n        unaff_s5 = pWVar48;\n        if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }\n        pWVar49 = pWVar48;\n        if (pWVar45 <= pWVar48) break;\n      } while( true );\n    }\n  }" if (parenthesized_expression "((((((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&\n       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))) &&\n      ((pTVar6->tabFlags & 0x20) == 0)) && (((uint)pSrc->fg & 0x140000) == 0))" ( (binary_expression "(((((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&\n       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))) &&\n      ((pTVar6->tabFlags & 0x20) == 0)) && (((uint)pSrc->fg & 0x140000) == 0)" (parenthesized_expression "(((((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&\n       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))) &&\n      ((pTVar6->tabFlags & 0x20) == 0))" ( (binary_expression "((((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&\n       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))) &&\n      ((pTVar6->tabFlags & 0x20) == 0)" (parenthesized_expression "((((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&\n       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1))))" ( (binary_expression "(((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&\n       ((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))" (parenthesized_expression "(((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0))" ( (binary_expression "((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&\n        ((pWVar44->pParse->db->flags & 0x8000) != 0)" (parenthesized_expression "((pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0))" ( (binary_expression "(pWVar8 == (WhereOrSet *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)" (parenthesized_expression "(pWVar8 == (WhereOrSet *)0x0)" ( (binary_expression "pWVar8 == (WhereOrSet *)0x0" identifier == (cast_expression "(WhereOrSet *)0x0" ( (type_descriptor "WhereOrSet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((pWVar44->wctrlFlags & 0x20) == 0)" ( (binary_expression "(pWVar44->wctrlFlags & 0x20) == 0" (parenthesized_expression "(pWVar44->wctrlFlags & 0x20)" ( (binary_expression "pWVar44->wctrlFlags & 0x20" (field_expression "pWVar44->wctrlFlags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((pWVar44->pParse->db->flags & 0x8000) != 0)" ( (binary_expression "(pWVar44->pParse->db->flags & 0x8000) != 0" (parenthesized_expression "(pWVar44->pParse->db->flags & 0x8000)" ( (binary_expression "pWVar44->pParse->db->flags & 0x8000" (field_expression "pWVar44->pParse->db->flags" (field_expression "pWVar44->pParse->db" (field_expression "pWVar44->pParse" identifier -> field_identifier) -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))" ( (parenthesized_expression "(pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1))" ( (binary_expression "pSrc->pIBIndex == (Index *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)" (binary_expression "pSrc->pIBIndex == (Index *)0x0" (field_expression "pSrc->pIBIndex" identifier -> field_identifier) == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(-1 < (char)(pSrc->fg).field_0x1)" ( (binary_expression "-1 < (char)(pSrc->fg).field_0x1" number_literal < (cast_expression "(char)(pSrc->fg).field_0x1" ( (type_descriptor "char" primitive_type) ) (field_expression "(pSrc->fg).field_0x1" (parenthesized_expression "(pSrc->fg)" ( (field_expression "pSrc->fg" identifier -> field_identifier) )) . field_identifier))) ))) )) ))) )) && (parenthesized_expression "((pTVar6->tabFlags & 0x20) == 0)" ( (binary_expression "(pTVar6->tabFlags & 0x20) == 0" (parenthesized_expression "(pTVar6->tabFlags & 0x20)" ( (binary_expression "pTVar6->tabFlags & 0x20" (field_expression "pTVar6->tabFlags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(((uint)pSrc->fg & 0x140000) == 0)" ( (binary_expression "((uint)pSrc->fg & 0x140000) == 0" (parenthesized_expression "((uint)pSrc->fg & 0x140000)" ( (binary_expression "(uint)pSrc->fg & 0x140000" (cast_expression "(uint)pSrc->fg" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSrc->fg" identifier -> field_identifier)) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    sStack_b2 = (short)pIVar7 + (short)pWVar48;\n    pWVar49 = (WhereInfo *)pWVar25->a;\n    pcVar12 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar27 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pWVar45 = (WhereInfo *)(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6);\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pWVar49;\nLAB_00080e28:\n    pWVar48 = pWVar49;\n    pWVar49 = unaff_s5;\n    unaff_s6 = pTVar6;\n    if (unaff_s5 < pWVar45) {\n      do {\n        pIVar36 = (Index *)pIVar38->aiRowLogEst;\n        pWVar48 = (WhereInfo *)&pWVar49->sorted;\n        unaff_s5 = pWVar48;\n        if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }\n        pWVar49 = pWVar48;\n        if (pWVar45 <= pWVar48) break;\n      } while( true );\n    }\n  }" { (expression_statement "sStack_b2 = (short)pIVar7 + (short)pWVar48;" (assignment_expression "sStack_b2 = (short)pIVar7 + (short)pWVar48" identifier = (binary_expression "(short)pIVar7 + (short)pWVar48" (cast_expression "(short)pIVar7" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + (cast_expression "(short)pWVar48" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier))) ;) (expression_statement "pWVar49 = (WhereInfo *)pWVar25->a;" (assignment_expression "pWVar49 = (WhereInfo *)pWVar25->a" identifier = (cast_expression "(WhereInfo *)pWVar25->a" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pWVar25->a" identifier -> field_identifier))) ;) (expression_statement "pcVar12 = (code *)(PTR_LAB_0015b6c0 + -0x5530);" (assignment_expression "pcVar12 = (code *)(PTR_LAB_0015b6c0 + -0x5530)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5530)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5530)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5530" identifier + number_literal) )))) ;) (expression_statement "pcVar27 = (code *)(PTR_LAB_0015b6d8 + 0x358);" (assignment_expression "pcVar27 = (code *)(PTR_LAB_0015b6d8 + 0x358)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6d8 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + 0x358)" ( (binary_expression "PTR_LAB_0015b6d8 + 0x358" identifier + number_literal) )))) ;) (expression_statement "pWVar45 = (WhereInfo *)(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6);" (assignment_expression "pWVar45 = (WhereInfo *)(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6)" identifier = (cast_expression "(WhereInfo *)(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6)" ( (binary_expression "pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6" (binary_expression "pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc" (field_expression "pWVar49->aiCurOnePass" identifier -> field_identifier) + (binary_expression "pWVar25->nTerm * 0xc" (field_expression "pWVar25->nTerm" identifier -> field_identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x51d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x51d8)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x51d8" identifier + number_literal) )))) ;) (expression_statement "unaff_s5 = pWVar49;" (assignment_expression "unaff_s5 = pWVar49" identifier = identifier) ;) (labeled_statement "LAB_00080e28:\n    pWVar48 = pWVar49;" statement_identifier : (expression_statement "pWVar48 = pWVar49;" (assignment_expression "pWVar48 = pWVar49" identifier = identifier) ;)) (expression_statement "pWVar49 = unaff_s5;" (assignment_expression "pWVar49 = unaff_s5" identifier = identifier) ;) (expression_statement "unaff_s6 = pTVar6;" (assignment_expression "unaff_s6 = pTVar6" identifier = identifier) ;) (if_statement "if (unaff_s5 < pWVar45) {\n      do {\n        pIVar36 = (Index *)pIVar38->aiRowLogEst;\n        pWVar48 = (WhereInfo *)&pWVar49->sorted;\n        unaff_s5 = pWVar48;\n        if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }\n        pWVar49 = pWVar48;\n        if (pWVar45 <= pWVar48) break;\n      } while( true );\n    }" if (parenthesized_expression "(unaff_s5 < pWVar45)" ( (binary_expression "unaff_s5 < pWVar45" identifier < identifier) )) (compound_statement "{\n      do {\n        pIVar36 = (Index *)pIVar38->aiRowLogEst;\n        pWVar48 = (WhereInfo *)&pWVar49->sorted;\n        unaff_s5 = pWVar48;\n        if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }\n        pWVar49 = pWVar48;\n        if (pWVar45 <= pWVar48) break;\n      } while( true );\n    }" { (do_statement "do {\n        pIVar36 = (Index *)pIVar38->aiRowLogEst;\n        pWVar48 = (WhereInfo *)&pWVar49->sorted;\n        unaff_s5 = pWVar48;\n        if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }\n        pWVar49 = pWVar48;\n        if (pWVar45 <= pWVar48) break;\n      } while( true );" do (compound_statement "{\n        pIVar36 = (Index *)pIVar38->aiRowLogEst;\n        pWVar48 = (WhereInfo *)&pWVar49->sorted;\n        unaff_s5 = pWVar48;\n        if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }\n        pWVar49 = pWVar48;\n        if (pWVar45 <= pWVar48) break;\n      }" { (expression_statement "pIVar36 = (Index *)pIVar38->aiRowLogEst;" (assignment_expression "pIVar36 = (Index *)pIVar38->aiRowLogEst" identifier = (cast_expression "(Index *)pIVar38->aiRowLogEst" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pIVar38->aiRowLogEst" identifier -> field_identifier))) ;) (expression_statement "pWVar48 = (WhereInfo *)&pWVar49->sorted;" (assignment_expression "pWVar48 = (WhereInfo *)&pWVar49->sorted" identifier = (cast_expression "(WhereInfo *)&pWVar49->sorted" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pWVar49->sorted" & (field_expression "pWVar49->sorted" identifier -> field_identifier)))) ;) (expression_statement "unaff_s5 = pWVar48;" (assignment_expression "unaff_s5 = pWVar48" identifier = identifier) ;) (if_statement "if ((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0) {\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }" if (parenthesized_expression "((pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0)" ( (binary_expression "(pWVar49->iContinue & (uint)pIVar36) == 0 &&\n            (pWVar49->iBreak & (uint)pIVar38->pTable) == 0" (binary_expression "(pWVar49->iContinue & (uint)pIVar36) == 0" (parenthesized_expression "(pWVar49->iContinue & (uint)pIVar36)" ( (binary_expression "pWVar49->iContinue & (uint)pIVar36" (field_expression "pWVar49->iContinue" identifier -> field_identifier) & (cast_expression "(uint)pIVar36" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) && (binary_expression "(pWVar49->iBreak & (uint)pIVar38->pTable) == 0" (parenthesized_expression "(pWVar49->iBreak & (uint)pIVar38->pTable)" ( (binary_expression "pWVar49->iBreak & (uint)pIVar38->pTable" (field_expression "pWVar49->iBreak" identifier -> field_identifier) & (cast_expression "(uint)pIVar38->pTable" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIVar38->pTable" identifier -> field_identifier))) )) == number_literal)) )) (compound_statement "{\n          pWVar37 = (WhereInfo *)0x0;\n          pIVar36 = (Index *)0x0;\n          iVar10 = (*pcVar12)(pWVar49,pSrc);\n          if (iVar10 != 0) goto code_r0x00080e78;\n        }" { (expression_statement "pWVar37 = (WhereInfo *)0x0;" (assignment_expression "pWVar37 = (WhereInfo *)0x0" identifier = (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar36 = (Index *)0x0;" (assignment_expression "pIVar36 = (Index *)0x0" identifier = (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = (*pcVar12)(pWVar49,pSrc);" (assignment_expression "iVar10 = (*pcVar12)(pWVar49,pSrc)" identifier = (call_expression "(*pcVar12)(pWVar49,pSrc)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(pWVar49,pSrc)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 != 0) goto code_r0x00080e78;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00080e78;" goto statement_identifier ;)) })) (expression_statement "pWVar49 = pWVar48;" (assignment_expression "pWVar49 = pWVar48" identifier = identifier) ;) (if_statement "if (pWVar45 <= pWVar48) break;" if (parenthesized_expression "(pWVar45 <= pWVar48)" ( (binary_expression "pWVar45 <= pWVar48" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (expression_statement "puVar4 = PTR_LAB_0015b6d8;" (assignment_expression "puVar4 = PTR_LAB_0015b6d8" identifier = identifier) ;) (expression_statement "puVar54 = PTR_LAB_0015b6c0;" (assignment_expression "puVar54 = PTR_LAB_0015b6c0" identifier = identifier) ;) (expression_statement "cVar24 = '\0';" (assignment_expression "cVar24 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pWVar45 = pWVar44;" (assignment_expression "pWVar45 = pWVar44" identifier = identifier) ;) (expression_statement "pWVar49 = pWVar48;" (assignment_expression "pWVar49 = pWVar48" identifier = identifier) ;) (if_statement "if (pProbe != (Index *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pWVar48 = unaff_s5;\nLAB_0008081c:\n    pIVar36 = (Index *)pProbe->pPartIdxWhere;\n    if (((pIVar36 == (Index *)0x0) ||\n        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)) &&\n       (-1 < (char)pProbe->field_0x38)) {\n      sVar21 = *pProbe->aiRowLogEst;\n      pWVar49 = (WhereInfo *)(int)sVar21;\n      (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum = 0;\n      *(undefined2 *)&pIVar38->aSortOrder = 0;\n      pIVar38->zName = (char *)in_a2;\n      pIVar38->aColExpr = (ExprList *)0x0;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n      *(short *)((int)&pIVar38->pNext + 2) = sVar21;\n      pIVar38->azColl = &pProbe->zName;\n      pIVar38->aiColumn = (i16 *)in_a3;\n      bVar22 = pProbe->field_0x37;\n      bVar29 = bVar22 & 0x20;\n      if ((bVar22 & 0x20) == 0) {\n        pEVar26 = pBuilder->pWInfo->pOrderBy;\n        if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar22 & 0xc0) == 0xc0) {\n        bVar29 = 0;\n        pIVar38->pPartIdxWhere = (Expr *)0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pWVar48;\n    if (pSrc->pIBIndex == (Index *)0x0) {\n      pProbe = pProbe->pNext;\n      goto LAB_00080bf4;\n    }\n  }" if (parenthesized_expression "(pProbe != (Index *)0x0)" ( (binary_expression "pProbe != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pWVar48 = unaff_s5;\nLAB_0008081c:\n    pIVar36 = (Index *)pProbe->pPartIdxWhere;\n    if (((pIVar36 == (Index *)0x0) ||\n        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)) &&\n       (-1 < (char)pProbe->field_0x38)) {\n      sVar21 = *pProbe->aiRowLogEst;\n      pWVar49 = (WhereInfo *)(int)sVar21;\n      (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum = 0;\n      *(undefined2 *)&pIVar38->aSortOrder = 0;\n      pIVar38->zName = (char *)in_a2;\n      pIVar38->aColExpr = (ExprList *)0x0;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n      *(short *)((int)&pIVar38->pNext + 2) = sVar21;\n      pIVar38->azColl = &pProbe->zName;\n      pIVar38->aiColumn = (i16 *)in_a3;\n      bVar22 = pProbe->field_0x37;\n      bVar29 = bVar22 & 0x20;\n      if ((bVar22 & 0x20) == 0) {\n        pEVar26 = pBuilder->pWInfo->pOrderBy;\n        if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar22 & 0xc0) == 0xc0) {\n        bVar29 = 0;\n        pIVar38->pPartIdxWhere = (Expr *)0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pWVar48;\n    if (pSrc->pIBIndex == (Index *)0x0) {\n      pProbe = pProbe->pNext;\n      goto LAB_00080bf4;\n    }\n  }" { (expression_statement "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x51d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x51d8)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x51d8" identifier + number_literal) )))) ;) (expression_statement "pWVar48 = unaff_s5;" (assignment_expression "pWVar48 = unaff_s5" identifier = identifier) ;) (labeled_statement "LAB_0008081c:\n    pIVar36 = (Index *)pProbe->pPartIdxWhere;" statement_identifier : (expression_statement "pIVar36 = (Index *)pProbe->pPartIdxWhere;" (assignment_expression "pIVar36 = (Index *)pProbe->pPartIdxWhere" identifier = (cast_expression "(Index *)pProbe->pPartIdxWhere" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pProbe->pPartIdxWhere" identifier -> field_identifier))) ;)) (if_statement "if (((pIVar36 == (Index *)0x0) ||\n        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)) &&\n       (-1 < (char)pProbe->field_0x38)) {\n      sVar21 = *pProbe->aiRowLogEst;\n      pWVar49 = (WhereInfo *)(int)sVar21;\n      (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum = 0;\n      *(undefined2 *)&pIVar38->aSortOrder = 0;\n      pIVar38->zName = (char *)in_a2;\n      pIVar38->aColExpr = (ExprList *)0x0;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n      *(short *)((int)&pIVar38->pNext + 2) = sVar21;\n      pIVar38->azColl = &pProbe->zName;\n      pIVar38->aiColumn = (i16 *)in_a3;\n      bVar22 = pProbe->field_0x37;\n      bVar29 = bVar22 & 0x20;\n      if ((bVar22 & 0x20) == 0) {\n        pEVar26 = pBuilder->pWInfo->pOrderBy;\n        if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar22 & 0xc0) == 0xc0) {\n        bVar29 = 0;\n        pIVar38->pPartIdxWhere = (Expr *)0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }" if (parenthesized_expression "(((pIVar36 == (Index *)0x0) ||\n        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)) &&\n       (-1 < (char)pProbe->field_0x38))" ( (binary_expression "((pIVar36 == (Index *)0x0) ||\n        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)) &&\n       (-1 < (char)pProbe->field_0x38)" (parenthesized_expression "((pIVar36 == (Index *)0x0) ||\n        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0))" ( (binary_expression "(pIVar36 == (Index *)0x0) ||\n        (iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)" (parenthesized_expression "(pIVar36 == (Index *)0x0)" ( (binary_expression "pIVar36 == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0)" ( (comma_expression "iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36), iVar10 != 0" (assignment_expression "iVar10 = whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36)" identifier = (call_expression "whereUsablePartialIndex(pSrc->iCursor,pWVar25,(Expr *)pIVar36)" identifier (argument_list "(pSrc->iCursor,pWVar25,(Expr *)pIVar36)" ( (field_expression "pSrc->iCursor" identifier -> field_identifier) , identifier , (cast_expression "(Expr *)pIVar36" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(-1 < (char)pProbe->field_0x38)" ( (binary_expression "-1 < (char)pProbe->field_0x38" number_literal < (cast_expression "(char)pProbe->field_0x38" ( (type_descriptor "char" primitive_type) ) (field_expression "pProbe->field_0x38" identifier -> field_identifier))) ))) )) (compound_statement "{\n      sVar21 = *pProbe->aiRowLogEst;\n      pWVar49 = (WhereInfo *)(int)sVar21;\n      (((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum = 0;\n      *(undefined2 *)&pIVar38->aSortOrder = 0;\n      pIVar38->zName = (char *)in_a2;\n      pIVar38->aColExpr = (ExprList *)0x0;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n      *(short *)((int)&pIVar38->pNext + 2) = sVar21;\n      pIVar38->azColl = &pProbe->zName;\n      pIVar38->aiColumn = (i16 *)in_a3;\n      bVar22 = pProbe->field_0x37;\n      bVar29 = bVar22 & 0x20;\n      if ((bVar22 & 0x20) == 0) {\n        pEVar26 = pBuilder->pWInfo->pOrderBy;\n        if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar22 & 0xc0) == 0xc0) {\n        bVar29 = 0;\n        pIVar38->pPartIdxWhere = (Expr *)0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }" { (expression_statement "sVar21 = *pProbe->aiRowLogEst;" (assignment_expression "sVar21 = *pProbe->aiRowLogEst" identifier = (pointer_expression "*pProbe->aiRowLogEst" * (field_expression "pProbe->aiRowLogEst" identifier -> field_identifier))) ;) (expression_statement "pWVar49 = (WhereInfo *)(int)sVar21;" (assignment_expression "pWVar49 = (WhereInfo *)(int)sVar21" identifier = (cast_expression "(WhereInfo *)(int)sVar21" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)sVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "(((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum = 0;" (assignment_expression "(((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum = 0" (field_expression "(((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab).idxNum" (parenthesized_expression "(((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab)" ( (field_expression "((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->vtab" (parenthesized_expression "((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)" ( (cast_expression "(anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema" ( (type_descriptor "anon_union_12_2_d889f21e_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar38->pSchema" & (field_expression "pIVar38->pSchema" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "*(undefined2 *)&pIVar38->aSortOrder = 0;" (assignment_expression "*(undefined2 *)&pIVar38->aSortOrder = 0" (pointer_expression "*(undefined2 *)&pIVar38->aSortOrder" * (cast_expression "(undefined2 *)&pIVar38->aSortOrder" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar38->aSortOrder" & (field_expression "pIVar38->aSortOrder" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pIVar38->zName = (char *)in_a2;" (assignment_expression "pIVar38->zName = (char *)in_a2" (field_expression "pIVar38->zName" identifier -> field_identifier) = (cast_expression "(char *)in_a2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pIVar38->aColExpr = (ExprList *)0x0;" (assignment_expression "pIVar38->aColExpr = (ExprList *)0x0" (field_expression "pIVar38->aColExpr" identifier -> field_identifier) = (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(u8 *)((int)&pIVar38->zColAff + 1) = '\0';" (assignment_expression "*(u8 *)((int)&pIVar38->zColAff + 1) = '\0'" (pointer_expression "*(u8 *)((int)&pIVar38->zColAff + 1)" * (cast_expression "(u8 *)((int)&pIVar38->zColAff + 1)" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->zColAff + 1)" ( (binary_expression "(int)&pIVar38->zColAff + 1" (cast_expression "(int)&pIVar38->zColAff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->zColAff" & (field_expression "pIVar38->zColAff" identifier -> field_identifier))) + number_literal) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(LogEst *)((int)&pIVar38->zColAff + 2) = 0;" (assignment_expression "*(LogEst *)((int)&pIVar38->zColAff + 2) = 0" (pointer_expression "*(LogEst *)((int)&pIVar38->zColAff + 2)" * (cast_expression "(LogEst *)((int)&pIVar38->zColAff + 2)" ( (type_descriptor "LogEst *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->zColAff + 2)" ( (binary_expression "(int)&pIVar38->zColAff + 2" (cast_expression "(int)&pIVar38->zColAff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->zColAff" & (field_expression "pIVar38->zColAff" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)((int)&pIVar38->pNext + 2) = sVar21;" (assignment_expression "*(short *)((int)&pIVar38->pNext + 2) = sVar21" (pointer_expression "*(short *)((int)&pIVar38->pNext + 2)" * (cast_expression "(short *)((int)&pIVar38->pNext + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->pNext + 2)" ( (binary_expression "(int)&pIVar38->pNext + 2" (cast_expression "(int)&pIVar38->pNext" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->pNext" & (field_expression "pIVar38->pNext" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pIVar38->azColl = &pProbe->zName;" (assignment_expression "pIVar38->azColl = &pProbe->zName" (field_expression "pIVar38->azColl" identifier -> field_identifier) = (pointer_expression "&pProbe->zName" & (field_expression "pProbe->zName" identifier -> field_identifier))) ;) (expression_statement "pIVar38->aiColumn = (i16 *)in_a3;" (assignment_expression "pIVar38->aiColumn = (i16 *)in_a3" (field_expression "pIVar38->aiColumn" identifier -> field_identifier) = (cast_expression "(i16 *)in_a3" ( (type_descriptor "i16 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar22 = pProbe->field_0x37;" (assignment_expression "bVar22 = pProbe->field_0x37" identifier = (field_expression "pProbe->field_0x37" identifier -> field_identifier)) ;) (expression_statement "bVar29 = bVar22 & 0x20;" (assignment_expression "bVar29 = bVar22 & 0x20" identifier = (binary_expression "bVar22 & 0x20" identifier & number_literal)) ;) (if_statement "if ((bVar22 & 0x20) == 0) {\n        pEVar26 = pBuilder->pWInfo->pOrderBy;\n        if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }" if (parenthesized_expression "((bVar22 & 0x20) == 0)" ( (binary_expression "(bVar22 & 0x20) == 0" (parenthesized_expression "(bVar22 & 0x20)" ( (binary_expression "bVar22 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pEVar26 = pBuilder->pWInfo->pOrderBy;\n        if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }" { (expression_statement "pEVar26 = pBuilder->pWInfo->pOrderBy;" (assignment_expression "pEVar26 = pBuilder->pWInfo->pOrderBy" identifier = (field_expression "pBuilder->pWInfo->pOrderBy" (field_expression "pBuilder->pWInfo" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if ((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)) {\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }" if (parenthesized_expression "((pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr))" ( (binary_expression "(pEVar26 != (ExprList *)0x0) && (0 < pEVar26->nExpr)" (parenthesized_expression "(pEVar26 != (ExprList *)0x0)" ( (binary_expression "pEVar26 != (ExprList *)0x0" identifier != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < pEVar26->nExpr)" ( (binary_expression "0 < pEVar26->nExpr" number_literal < (field_expression "pEVar26->nExpr" identifier -> field_identifier)) ))) )) (compound_statement "{\n          unaff_s6 = (Table *)pSrc->iCursor;\n          pEVar39 = pEVar26->a;\n          iVar10 = 0;\nLAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }" { (expression_statement "unaff_s6 = (Table *)pSrc->iCursor;" (assignment_expression "unaff_s6 = (Table *)pSrc->iCursor" identifier = (cast_expression "(Table *)pSrc->iCursor" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSrc->iCursor" identifier -> field_identifier))) ;) (expression_statement "pEVar39 = pEVar26->a;" (assignment_expression "pEVar39 = pEVar26->a" identifier = (field_expression "pEVar26->a" identifier -> field_identifier)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000808d4:\n          for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }" statement_identifier : (for_statement "for (pWVar48 = (WhereInfo *)pEVar39->pExpr; pWVar48 != (WhereInfo *)0x0;\n              pWVar48 = (WhereInfo *)pWVar48->pResultSet) {\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }" for ( (assignment_expression "pWVar48 = (WhereInfo *)pEVar39->pExpr" identifier = (cast_expression "(WhereInfo *)pEVar39->pExpr" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar39->pExpr" identifier -> field_identifier))) ; (binary_expression "pWVar48 != (WhereInfo *)0x0" identifier != (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pWVar48 = (WhereInfo *)pWVar48->pResultSet" identifier = (cast_expression "(WhereInfo *)pWVar48->pResultSet" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pWVar48->pResultSet" identifier -> field_identifier))) ) (compound_statement "{\n            while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }\n          }" { (while_statement "while( true ) {\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }\n              if (((uint)pWVar48->pTabList & 0x40000) == 0) break;\n              pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);\n              if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;\n            }" { (if_statement "if (((uint)pWVar48->pTabList & 0x1000) == 0) {\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }" if (parenthesized_expression "(((uint)pWVar48->pTabList & 0x1000) == 0)" ( (binary_expression "((uint)pWVar48->pTabList & 0x1000) == 0" (parenthesized_expression "((uint)pWVar48->pTabList & 0x1000)" ( (binary_expression "(uint)pWVar48->pTabList & 0x1000" (cast_expression "(uint)pWVar48->pTabList" ( (type_descriptor "uint" type_identifier) ) (field_expression "pWVar48->pTabList" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (compound_statement "{\n                pIVar7 = pProbe;\n                if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }\n                iVar14 = pWVar48->iContinue;\n                if (iVar14 < 0) goto LAB_00080b70;\n                if (pProbe->nKeyCol == 0) goto LAB_00080938;\n                psVar30 = pProbe->aiColumn;\n                if (iVar14 == *psVar30) goto LAB_00080b70;\n                psVar31 = psVar30 + pProbe->nKeyCol;\n                goto LAB_00080b5c;\n              }" { (expression_statement "pIVar7 = pProbe;" (assignment_expression "pIVar7 = pProbe" identifier = identifier) ;) (if_statement "if ((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)) {\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }" if (parenthesized_expression "((*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn))" ( (binary_expression "(*(char *)&pWVar48->pParse != -0x62) ||\n                   (unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)" (parenthesized_expression "(*(char *)&pWVar48->pParse != -0x62)" ( (binary_expression "*(char *)&pWVar48->pParse != -0x62" (pointer_expression "*(char *)&pWVar48->pParse" * (cast_expression "(char *)&pWVar48->pParse" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pWVar48->pParse" & (field_expression "pWVar48->pParse" identifier -> field_identifier)))) != number_literal) )) || (parenthesized_expression "(unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn)" ( (binary_expression "unaff_s6 !=\n                    (Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn" identifier != (cast_expression "(Table *)((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))->\n                             leftColumn" (parenthesized_expression "((anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1))" ( (cast_expression "(anon_union_4_3_737c4e49_for_u *)(pWVar48->aiCurOnePass + 1)" ( (type_descriptor "anon_union_4_3_737c4e49_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pWVar48->aiCurOnePass + 1)" ( (binary_expression "pWVar48->aiCurOnePass + 1" (field_expression "pWVar48->aiCurOnePass" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier))) ))) )) (compound_statement "{\n                  if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }\n                  goto LAB_00080938;\n                }" { (if_statement "if ((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)) {\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }" if (parenthesized_expression "((pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0))" ( (binary_expression "(pProbe->aColExpr != (ExprList *)0x0) && (pProbe->nKeyCol != 0)" (parenthesized_expression "(pProbe->aColExpr != (ExprList *)0x0)" ( (binary_expression "pProbe->aColExpr != (ExprList *)0x0" (field_expression "pProbe->aColExpr" identifier -> field_identifier) != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pProbe->nKeyCol != 0)" ( (binary_expression "pProbe->nKeyCol != 0" (field_expression "pProbe->nKeyCol" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n                    iVar10 = FUN_00080ad0();\n                    return iVar10;\n                  }" { (expression_statement "iVar10 = FUN_00080ad0();" (assignment_expression "iVar10 = FUN_00080ad0()" identifier = (call_expression "FUN_00080ad0()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar10;" return identifier ;) })) (goto_statement "goto LAB_00080938;" goto statement_identifier ;) })) (expression_statement "iVar14 = pWVar48->iContinue;" (assignment_expression "iVar14 = pWVar48->iContinue" identifier = (field_expression "pWVar48->iContinue" identifier -> field_identifier)) ;) (if_statement "if (iVar14 < 0) goto LAB_00080b70;" if (parenthesized_expression "(iVar14 < 0)" ( (binary_expression "iVar14 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (if_statement "if (pProbe->nKeyCol == 0) goto LAB_00080938;" if (parenthesized_expression "(pProbe->nKeyCol == 0)" ( (binary_expression "pProbe->nKeyCol == 0" (field_expression "pProbe->nKeyCol" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00080938;" goto statement_identifier ;)) (expression_statement "psVar30 = pProbe->aiColumn;" (assignment_expression "psVar30 = pProbe->aiColumn" identifier = (field_expression "pProbe->aiColumn" identifier -> field_identifier)) ;) (if_statement "if (iVar14 == *psVar30) goto LAB_00080b70;" if (parenthesized_expression "(iVar14 == *psVar30)" ( (binary_expression "iVar14 == *psVar30" identifier == (pointer_expression "*psVar30" * identifier)) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (expression_statement "psVar31 = psVar30 + pProbe->nKeyCol;" (assignment_expression "psVar31 = psVar30 + pProbe->nKeyCol" identifier = (binary_expression "psVar30 + pProbe->nKeyCol" identifier + (field_expression "pProbe->nKeyCol" identifier -> field_identifier))) ;) (goto_statement "goto LAB_00080b5c;" goto statement_identifier ;) })) (if_statement "if (((uint)pWVar48->pTabList & 0x40000) == 0) break;" if (parenthesized_expression "(((uint)pWVar48->pTabList & 0x40000) == 0)" ( (binary_expression "((uint)pWVar48->pTabList & 0x40000) == 0" (parenthesized_expression "((uint)pWVar48->pTabList & 0x40000)" ( (binary_expression "(uint)pWVar48->pTabList & 0x40000" (cast_expression "(uint)pWVar48->pTabList" ( (type_descriptor "uint" type_identifier) ) (field_expression "pWVar48->pTabList" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4);" (assignment_expression "pWVar48 = *(WhereInfo **)(*(int *)&pWVar48->iLimit + 4)" identifier = (pointer_expression "*(WhereInfo **)(*(int *)&pWVar48->iLimit + 4)" * (cast_expression "(WhereInfo **)(*(int *)&pWVar48->iLimit + 4)" ( (type_descriptor "WhereInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)&pWVar48->iLimit + 4)" ( (binary_expression "*(int *)&pWVar48->iLimit + 4" (pointer_expression "*(int *)&pWVar48->iLimit" * (cast_expression "(int *)&pWVar48->iLimit" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pWVar48->iLimit" & (field_expression "pWVar48->iLimit" identifier -> field_identifier)))) + number_literal) ))))) ;) (if_statement "if (pWVar48 == (WhereInfo *)0x0) goto LAB_0008090c;" if (parenthesized_expression "(pWVar48 == (WhereInfo *)0x0)" ( (binary_expression "pWVar48 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008090c;" goto statement_identifier ;)) })) }))) (labeled_statement "LAB_0008090c:\n                    /* WARNING: Does not return */\n          pcVar9 = (code *)trap(0);" statement_identifier : comment (expression_statement "pcVar9 = (code *)trap(0);" (assignment_expression "pcVar9 = (code *)trap(0)" identifier = (cast_expression "(code *)trap(0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "trap(0)" identifier (argument_list "(0)" ( number_literal ))))) ;)) (expression_statement "(*pcVar9)();" (call_expression "(*pcVar9)()" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0008095c;" goto statement_identifier ;) })) (if_statement "if ((bVar22 & 0xc0) == 0xc0) {\n        bVar29 = 0;\n        pIVar38->pPartIdxWhere = (Expr *)0x100;\n        goto LAB_00080c28;\n      }" if (parenthesized_expression "((bVar22 & 0xc0) == 0xc0)" ( (binary_expression "(bVar22 & 0xc0) == 0xc0" (parenthesized_expression "(bVar22 & 0xc0)" ( (binary_expression "bVar22 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        bVar29 = 0;\n        pIVar38->pPartIdxWhere = (Expr *)0x100;\n        goto LAB_00080c28;\n      }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "pIVar38->pPartIdxWhere = (Expr *)0x100;" (assignment_expression "pIVar38->pPartIdxWhere = (Expr *)0x100" (field_expression "pIVar38->pPartIdxWhere" identifier -> field_identifier) = (cast_expression "(Expr *)0x100" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00080c28;" goto statement_identifier ;) })) (goto_statement "goto LAB_0008096c;" goto statement_identifier ;) })) (expression_statement "unaff_s5 = pWVar48;" (assignment_expression "unaff_s5 = pWVar48" identifier = identifier) ;) (if_statement "if (pSrc->pIBIndex == (Index *)0x0) {\n      pProbe = pProbe->pNext;\n      goto LAB_00080bf4;\n    }" if (parenthesized_expression "(pSrc->pIBIndex == (Index *)0x0)" ( (binary_expression "pSrc->pIBIndex == (Index *)0x0" (field_expression "pSrc->pIBIndex" identifier -> field_identifier) == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pProbe = pProbe->pNext;\n      goto LAB_00080bf4;\n    }" { (expression_statement "pProbe = pProbe->pNext;" (assignment_expression "pProbe = pProbe->pNext" identifier = (field_expression "pProbe->pNext" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00080bf4;" goto statement_identifier ;) })) })) (expression_statement "pWVar48 = unaff_s5;" (assignment_expression "pWVar48 = unaff_s5" identifier = identifier) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00080a6c:\n  if (piVar5 == *(int **)puVar55) {\n    return iVar10;\n  }" statement_identifier : (if_statement "if (piVar5 == *(int **)puVar55) {\n    return iVar10;\n  }" if (parenthesized_expression "(piVar5 == *(int **)puVar55)" ( (binary_expression "piVar5 == *(int **)puVar55" identifier == (pointer_expression "*(int **)puVar55" * (cast_expression "(int **)puVar55" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar10;\n  }" { (return_statement "return iVar10;" return identifier ;) }))) (expression_statement "pcVar9 = whereLoopAddOr;" (assignment_expression "pcVar9 = whereLoopAddOr" identifier = identifier) ;) (expression_statement "puVar54 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar54 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar55 = puVar54 + 0xe2508;" (assignment_expression "puVar55 = puVar54 + 0xe2508" identifier = (binary_expression "puVar54 + 0xe2508" identifier + number_literal)) ;) (expression_statement "piVar13 = *(int **)(puVar54 + 0xda984);" (assignment_expression "piVar13 = *(int **)(puVar54 + 0xda984)" identifier = (pointer_expression "*(int **)(puVar54 + 0xda984)" * (cast_expression "(int **)(puVar54 + 0xda984)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0xda984)" ( (binary_expression "puVar54 + 0xda984" identifier + number_literal) ))))) ;) (expression_statement "pTStack_e8 = unaff_s6;" (assignment_expression "pTStack_e8 = unaff_s6" identifier = identifier) ;) (expression_statement "pIStack_e0 = pProbe;" (assignment_expression "pIStack_e0 = pProbe" identifier = identifier) ;) (expression_statement "pWStack_f0 = pBuilder;" (assignment_expression "pWStack_f0 = pBuilder" identifier = identifier) ;) (expression_statement "pcStack_dc = pcVar9;" (assignment_expression "pcStack_dc = pcVar9" identifier = identifier) ;) (expression_statement "pIStack_e4 = pIVar7;" (assignment_expression "pIStack_e4 = pIVar7" identifier = identifier) ;) (expression_statement "pWStack_ec = pWVar48;" (assignment_expression "pWStack_ec = pWVar48" identifier = identifier) ;) (expression_statement "pWStack_f4 = pWVar49;" (assignment_expression "pWStack_f4 = pWVar49" identifier = identifier) ;) (expression_statement "pWStack_f8 = pWVar45;" (assignment_expression "pWStack_f8 = pWVar45" identifier = identifier) ;) (expression_statement "pSStack_fc = pSrc;" (assignment_expression "pSStack_fc = pSrc" identifier = identifier) ;) (expression_statement "pIStack_100 = pIVar38;" (assignment_expression "pIStack_100 = pIVar38" identifier = identifier) ;) (expression_statement "pWVar25 = (WhereClause *)piVar5[1];" (assignment_expression "pWVar25 = (WhereClause *)piVar5[1]" identifier = (cast_expression "(WhereClause *)piVar5[1]" ( (type_descriptor "WhereClause *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar50 = (uint *)piVar5[3];" (assignment_expression "puVar50 = (uint *)piVar5[3]" identifier = (cast_expression "(uint *)piVar5[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[3]" identifier [ number_literal ]))) ;) (expression_statement "uStack_348 = 0;" (assignment_expression "uStack_348 = 0" identifier = number_literal) ;) (expression_statement "uStack_344 = 0;" (assignment_expression "uStack_344 = 0" identifier = number_literal) ;) (expression_statement "uStack_340 = 0;" (assignment_expression "uStack_340 = 0" identifier = number_literal) ;) (expression_statement "uStack_33c = 0;" (assignment_expression "uStack_33c = 0" identifier = number_literal) ;) (expression_statement "uStack_338 = 0;" (assignment_expression "uStack_338 = 0" identifier = number_literal) ;) (expression_statement "uStack_334 = 0;" (assignment_expression "uStack_334 = 0" identifier = number_literal) ;) (expression_statement "uStack_330 = 0;" (assignment_expression "uStack_330 = 0" identifier = number_literal) ;) (expression_statement "pWVar52 = pWVar25->a + pWVar25->nTerm;" (assignment_expression "pWVar52 = pWVar25->a + pWVar25->nTerm" identifier = (binary_expression "pWVar25->a + pWVar25->nTerm" (field_expression "pWVar25->a" identifier -> field_identifier) + (field_expression "pWVar25->nTerm" identifier -> field_identifier))) ;) (expression_statement "uStack_32c = 0;" (assignment_expression "uStack_32c = 0" identifier = number_literal) ;) (expression_statement "uStack_328 = 0;" (assignment_expression "uStack_328 = 0" identifier = number_literal) ;) (expression_statement "uStack_324 = 0;" (assignment_expression "uStack_324 = 0" identifier = number_literal) ;) (expression_statement "uStack_320 = 0;" (assignment_expression "uStack_320 = 0" identifier = number_literal) ;) (expression_statement "uStack_31c = 0;" (assignment_expression "uStack_31c = 0" identifier = number_literal) ;) (expression_statement "uStack_318 = 0;" (assignment_expression "uStack_318 = 0" identifier = number_literal) ;) (expression_statement "uStack_314 = 0;" (assignment_expression "uStack_314 = 0" identifier = number_literal) ;) (expression_statement "pWVar28 = pWVar25->a;" (assignment_expression "pWVar28 = pWVar25->a" identifier = (field_expression "pWVar25->a" identifier -> field_identifier)) ;) (expression_statement "iStack_104 = *piVar13;" (assignment_expression "iStack_104 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "pWStack_cc = pWVar37;" (assignment_expression "pWStack_cc = pWVar37" identifier = identifier) ;) (expression_statement "pIStack_d0 = pIVar36;" (assignment_expression "pIStack_d0 = pIVar36" identifier = identifier) ;) (expression_statement "iVar10 = *(int *)(*piVar5 + 4) + 8 + (uint)*(byte *)(puVar50 + 4) * 0x48;" (assignment_expression "iVar10 = *(int *)(*piVar5 + 4) + 8 + (uint)*(byte *)(puVar50 + 4) * 0x48" identifier = (binary_expression "*(int *)(*piVar5 + 4) + 8 + (uint)*(byte *)(puVar50 + 4) * 0x48" (binary_expression "*(int *)(*piVar5 + 4) + 8" (pointer_expression "*(int *)(*piVar5 + 4)" * (cast_expression "(int *)(*piVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + 4)" ( (binary_expression "*piVar5 + 4" (pointer_expression "*piVar5" * identifier) + number_literal) )))) + number_literal) + (binary_expression "(uint)*(byte *)(puVar50 + 4) * 0x48" (binary_expression "(uint)*(byte *)(puVar50 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(puVar50 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 4)" ( (binary_expression "puVar50 + 4" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar14 = *(int *)(iVar10 + 0x28);" (assignment_expression "iVar14 = *(int *)(iVar10 + 0x28)" identifier = (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (pWVar28 < pWVar52) {\n    iVar15 = *(int *)(puVar54 + 0xda5b4);\n    iVar16 = *(int *)(puVar54 + 0xda630);\n    iVar17 = *(int *)(puVar54 + 0xda66c);\n    puVar54 = puVar55;\n    do {\n      while (((pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0))) {\n        pWVar28 = pWVar28 + 1;\n        if (pWVar52 <= pWVar28) goto LAB_00081208;\n      }\n      WStack_364.pWInfo = (WhereInfo *)*piVar5;\n      WStack_364.pWC = *(WhereClause **)(piVar5 + 1);\n      WStack_364.pNew = (WhereLoop *)piVar5[3];\n      WStack_364.bldFlags = piVar5[5];\n      WStack_364.iPlanLimit = piVar5[6];\n      pWVar18 = (pWVar35->wc).a + (pWVar35->wc).nTerm;\n      WStack_364.pOrderBy = (ExprList *)0x0;\n      pWVar40 = (pWVar35->wc).a;\n      WStack_364.pOrSet = &WStack_310;\n      if (pWVar40 < pWVar18) {\n        iVar53 = 0;\n        bVar3 = true;\n        do {\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        } while (pWVar40 < pWVar18);\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n        if (iVar53 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n      }\n      iVar42 = *(int *)(puVar55 + -0x7ef0);\n      if (uStack_348._0_2_ != 0) {\n        iVar47 = 0;\n        puVar43 = &uStack_348;\n        puVar55 = puVar54;\n        do {\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        } while (iVar47 < (int)(uStack_348 >> 0x10));\n      }\n      pWVar28 = pWVar28 + 1;\n    } while (pWVar28 < pWVar52);\n    iVar53 = 0;\n  }\n  else {\nLAB_00081208:\n    iVar53 = 0;\n  }" if (parenthesized_expression "(pWVar28 < pWVar52)" ( (binary_expression "pWVar28 < pWVar52" identifier < identifier) )) (compound_statement "{\n    iVar15 = *(int *)(puVar54 + 0xda5b4);\n    iVar16 = *(int *)(puVar54 + 0xda630);\n    iVar17 = *(int *)(puVar54 + 0xda66c);\n    puVar54 = puVar55;\n    do {\n      while (((pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0))) {\n        pWVar28 = pWVar28 + 1;\n        if (pWVar52 <= pWVar28) goto LAB_00081208;\n      }\n      WStack_364.pWInfo = (WhereInfo *)*piVar5;\n      WStack_364.pWC = *(WhereClause **)(piVar5 + 1);\n      WStack_364.pNew = (WhereLoop *)piVar5[3];\n      WStack_364.bldFlags = piVar5[5];\n      WStack_364.iPlanLimit = piVar5[6];\n      pWVar18 = (pWVar35->wc).a + (pWVar35->wc).nTerm;\n      WStack_364.pOrderBy = (ExprList *)0x0;\n      pWVar40 = (pWVar35->wc).a;\n      WStack_364.pOrSet = &WStack_310;\n      if (pWVar40 < pWVar18) {\n        iVar53 = 0;\n        bVar3 = true;\n        do {\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        } while (pWVar40 < pWVar18);\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n        if (iVar53 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n      }\n      iVar42 = *(int *)(puVar55 + -0x7ef0);\n      if (uStack_348._0_2_ != 0) {\n        iVar47 = 0;\n        puVar43 = &uStack_348;\n        puVar55 = puVar54;\n        do {\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        } while (iVar47 < (int)(uStack_348 >> 0x10));\n      }\n      pWVar28 = pWVar28 + 1;\n    } while (pWVar28 < pWVar52);\n    iVar53 = 0;\n  }" { (expression_statement "iVar15 = *(int *)(puVar54 + 0xda5b4);" (assignment_expression "iVar15 = *(int *)(puVar54 + 0xda5b4)" identifier = (pointer_expression "*(int *)(puVar54 + 0xda5b4)" * (cast_expression "(int *)(puVar54 + 0xda5b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0xda5b4)" ( (binary_expression "puVar54 + 0xda5b4" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(puVar54 + 0xda630);" (assignment_expression "iVar16 = *(int *)(puVar54 + 0xda630)" identifier = (pointer_expression "*(int *)(puVar54 + 0xda630)" * (cast_expression "(int *)(puVar54 + 0xda630)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0xda630)" ( (binary_expression "puVar54 + 0xda630" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(puVar54 + 0xda66c);" (assignment_expression "iVar17 = *(int *)(puVar54 + 0xda66c)" identifier = (pointer_expression "*(int *)(puVar54 + 0xda66c)" * (cast_expression "(int *)(puVar54 + 0xda66c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0xda66c)" ( (binary_expression "puVar54 + 0xda66c" identifier + number_literal) ))))) ;) (expression_statement "puVar54 = puVar55;" (assignment_expression "puVar54 = puVar55" identifier = identifier) ;) (do_statement "do {\n      while (((pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0))) {\n        pWVar28 = pWVar28 + 1;\n        if (pWVar52 <= pWVar28) goto LAB_00081208;\n      }\n      WStack_364.pWInfo = (WhereInfo *)*piVar5;\n      WStack_364.pWC = *(WhereClause **)(piVar5 + 1);\n      WStack_364.pNew = (WhereLoop *)piVar5[3];\n      WStack_364.bldFlags = piVar5[5];\n      WStack_364.iPlanLimit = piVar5[6];\n      pWVar18 = (pWVar35->wc).a + (pWVar35->wc).nTerm;\n      WStack_364.pOrderBy = (ExprList *)0x0;\n      pWVar40 = (pWVar35->wc).a;\n      WStack_364.pOrSet = &WStack_310;\n      if (pWVar40 < pWVar18) {\n        iVar53 = 0;\n        bVar3 = true;\n        do {\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        } while (pWVar40 < pWVar18);\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n        if (iVar53 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n      }\n      iVar42 = *(int *)(puVar55 + -0x7ef0);\n      if (uStack_348._0_2_ != 0) {\n        iVar47 = 0;\n        puVar43 = &uStack_348;\n        puVar55 = puVar54;\n        do {\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        } while (iVar47 < (int)(uStack_348 >> 0x10));\n      }\n      pWVar28 = pWVar28 + 1;\n    } while (pWVar28 < pWVar52);" do (compound_statement "{\n      while (((pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0))) {\n        pWVar28 = pWVar28 + 1;\n        if (pWVar52 <= pWVar28) goto LAB_00081208;\n      }\n      WStack_364.pWInfo = (WhereInfo *)*piVar5;\n      WStack_364.pWC = *(WhereClause **)(piVar5 + 1);\n      WStack_364.pNew = (WhereLoop *)piVar5[3];\n      WStack_364.bldFlags = piVar5[5];\n      WStack_364.iPlanLimit = piVar5[6];\n      pWVar18 = (pWVar35->wc).a + (pWVar35->wc).nTerm;\n      WStack_364.pOrderBy = (ExprList *)0x0;\n      pWVar40 = (pWVar35->wc).a;\n      WStack_364.pOrSet = &WStack_310;\n      if (pWVar40 < pWVar18) {\n        iVar53 = 0;\n        bVar3 = true;\n        do {\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        } while (pWVar40 < pWVar18);\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n        if (iVar53 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n      }\n      iVar42 = *(int *)(puVar55 + -0x7ef0);\n      if (uStack_348._0_2_ != 0) {\n        iVar47 = 0;\n        puVar43 = &uStack_348;\n        puVar55 = puVar54;\n        do {\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        } while (iVar47 < (int)(uStack_348 >> 0x10));\n      }\n      pWVar28 = pWVar28 + 1;\n    }" { (while_statement "while (((pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0))) {\n        pWVar28 = pWVar28 + 1;\n        if (pWVar52 <= pWVar28) goto LAB_00081208;\n      }" while (parenthesized_expression "(((pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0)))" ( (parenthesized_expression "((pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0))" ( (binary_expression "(pWVar28->eOperator & 0x200) == 0 ||\n             (pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0)" (binary_expression "(pWVar28->eOperator & 0x200) == 0" (parenthesized_expression "(pWVar28->eOperator & 0x200)" ( (binary_expression "pWVar28->eOperator & 0x200" (field_expression "pWVar28->eOperator" identifier -> field_identifier) & number_literal) )) == number_literal) || (parenthesized_expression "(pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0)" ( (comma_expression "pWVar35 = (pWVar28->u).pOrInfo,\n             (*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0" (assignment_expression "pWVar35 = (pWVar28->u).pOrInfo" identifier = (field_expression "(pWVar28->u).pOrInfo" (parenthesized_expression "(pWVar28->u)" ( (field_expression "pWVar28->u" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(*(uint *)&pWVar35->indexable & puVar50[2]) == 0 &&\n             ((uint)pWVar35->indexable & puVar50[3]) == 0" (binary_expression "(*(uint *)&pWVar35->indexable & puVar50[2]) == 0" (parenthesized_expression "(*(uint *)&pWVar35->indexable & puVar50[2])" ( (binary_expression "*(uint *)&pWVar35->indexable & puVar50[2]" (pointer_expression "*(uint *)&pWVar35->indexable" * (cast_expression "(uint *)&pWVar35->indexable" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pWVar35->indexable" & (field_expression "pWVar35->indexable" identifier -> field_identifier)))) & (subscript_expression "puVar50[2]" identifier [ number_literal ])) )) == number_literal) && (binary_expression "((uint)pWVar35->indexable & puVar50[3]) == 0" (parenthesized_expression "((uint)pWVar35->indexable & puVar50[3])" ( (binary_expression "(uint)pWVar35->indexable & puVar50[3]" (cast_expression "(uint)pWVar35->indexable" ( (type_descriptor "uint" type_identifier) ) (field_expression "pWVar35->indexable" identifier -> field_identifier)) & (subscript_expression "puVar50[3]" identifier [ number_literal ])) )) == number_literal))) ))) )) )) (compound_statement "{\n        pWVar28 = pWVar28 + 1;\n        if (pWVar52 <= pWVar28) goto LAB_00081208;\n      }" { (expression_statement "pWVar28 = pWVar28 + 1;" (assignment_expression "pWVar28 = pWVar28 + 1" identifier = (binary_expression "pWVar28 + 1" identifier + number_literal)) ;) (if_statement "if (pWVar52 <= pWVar28) goto LAB_00081208;" if (parenthesized_expression "(pWVar52 <= pWVar28)" ( (binary_expression "pWVar52 <= pWVar28" identifier <= identifier) )) (goto_statement "goto LAB_00081208;" goto statement_identifier ;)) })) (expression_statement "WStack_364.pWInfo = (WhereInfo *)*piVar5;" (assignment_expression "WStack_364.pWInfo = (WhereInfo *)*piVar5" (field_expression "WStack_364.pWInfo" identifier . field_identifier) = (cast_expression "(WhereInfo *)*piVar5" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) ;) (expression_statement "WStack_364.pWC = *(WhereClause **)(piVar5 + 1);" (assignment_expression "WStack_364.pWC = *(WhereClause **)(piVar5 + 1)" (field_expression "WStack_364.pWC" identifier . field_identifier) = (pointer_expression "*(WhereClause **)(piVar5 + 1)" * (cast_expression "(WhereClause **)(piVar5 + 1)" ( (type_descriptor "WhereClause **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar5 + 1)" ( (binary_expression "piVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "WStack_364.pNew = (WhereLoop *)piVar5[3];" (assignment_expression "WStack_364.pNew = (WhereLoop *)piVar5[3]" (field_expression "WStack_364.pNew" identifier . field_identifier) = (cast_expression "(WhereLoop *)piVar5[3]" ( (type_descriptor "WhereLoop *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[3]" identifier [ number_literal ]))) ;) (expression_statement "WStack_364.bldFlags = piVar5[5];" (assignment_expression "WStack_364.bldFlags = piVar5[5]" (field_expression "WStack_364.bldFlags" identifier . field_identifier) = (subscript_expression "piVar5[5]" identifier [ number_literal ])) ;) (expression_statement "WStack_364.iPlanLimit = piVar5[6];" (assignment_expression "WStack_364.iPlanLimit = piVar5[6]" (field_expression "WStack_364.iPlanLimit" identifier . field_identifier) = (subscript_expression "piVar5[6]" identifier [ number_literal ])) ;) (expression_statement "pWVar18 = (pWVar35->wc).a + (pWVar35->wc).nTerm;" (assignment_expression "pWVar18 = (pWVar35->wc).a + (pWVar35->wc).nTerm" identifier = (binary_expression "(pWVar35->wc).a + (pWVar35->wc).nTerm" (field_expression "(pWVar35->wc).a" (parenthesized_expression "(pWVar35->wc)" ( (field_expression "pWVar35->wc" identifier -> field_identifier) )) . field_identifier) + (field_expression "(pWVar35->wc).nTerm" (parenthesized_expression "(pWVar35->wc)" ( (field_expression "pWVar35->wc" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "WStack_364.pOrderBy = (ExprList *)0x0;" (assignment_expression "WStack_364.pOrderBy = (ExprList *)0x0" (field_expression "WStack_364.pOrderBy" identifier . field_identifier) = (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pWVar40 = (pWVar35->wc).a;" (assignment_expression "pWVar40 = (pWVar35->wc).a" identifier = (field_expression "(pWVar35->wc).a" (parenthesized_expression "(pWVar35->wc)" ( (field_expression "pWVar35->wc" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "WStack_364.pOrSet = &WStack_310;" (assignment_expression "WStack_364.pOrSet = &WStack_310" (field_expression "WStack_364.pOrSet" identifier . field_identifier) = (pointer_expression "&WStack_310" & identifier)) ;) (if_statement "if (pWVar40 < pWVar18) {\n        iVar53 = 0;\n        bVar3 = true;\n        do {\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        } while (pWVar40 < pWVar18);\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n        if (iVar53 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n      }" if (parenthesized_expression "(pWVar40 < pWVar18)" ( (binary_expression "pWVar40 < pWVar18" identifier < identifier) )) (compound_statement "{\n        iVar53 = 0;\n        bVar3 = true;\n        do {\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        } while (pWVar40 < pWVar18);\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n        if (iVar53 != 0) goto LAB_0008120c;\n      }" { (expression_statement "iVar53 = 0;" (assignment_expression "iVar53 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (do_statement "do {\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        } while (pWVar40 < pWVar18);" do (compound_statement "{\n          if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }\n          pWVar40 = pWVar40 + 1;\n        }" { (if_statement "if ((pWVar40->eOperator & 0x400) == 0) {\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }" if (parenthesized_expression "((pWVar40->eOperator & 0x400) == 0)" ( (binary_expression "(pWVar40->eOperator & 0x400) == 0" (parenthesized_expression "(pWVar40->eOperator & 0x400)" ( (binary_expression "pWVar40->eOperator & 0x400" (field_expression "pWVar40->eOperator" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }\n          }" { (if_statement "if (pWVar40->leftCursor == iVar14) {\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }" if (parenthesized_expression "(pWVar40->leftCursor == iVar14)" ( (binary_expression "pWVar40->leftCursor == iVar14" (field_expression "pWVar40->leftCursor" identifier -> field_identifier) == identifier) )) (compound_statement "{\n              pWStack_2a0 = pWVar25->pWInfo;\n              uStack_298 = ',';\n              iStack_294 = 1;\n              WStack_364.pWC = (WhereClause *)&pWStack_2a0;\n              pWStack_29c = pWVar25;\n              pWStack_28c = pWVar40;\n              if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              WStack_310.n = 0;\n              iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));\n              puVar55 = puVar54;\n              goto joined_r0x00081334;\n            }" { (expression_statement "pWStack_2a0 = pWVar25->pWInfo;" (assignment_expression "pWStack_2a0 = pWVar25->pWInfo" identifier = (field_expression "pWVar25->pWInfo" identifier -> field_identifier)) ;) (expression_statement "uStack_298 = ',';" (assignment_expression "uStack_298 = ','" identifier = (char_literal "','" ' character ')) ;) (expression_statement "iStack_294 = 1;" (assignment_expression "iStack_294 = 1" identifier = number_literal) ;) (expression_statement "WStack_364.pWC = (WhereClause *)&pWStack_2a0;" (assignment_expression "WStack_364.pWC = (WhereClause *)&pWStack_2a0" (field_expression "WStack_364.pWC" identifier . field_identifier) = (cast_expression "(WhereClause *)&pWStack_2a0" ( (type_descriptor "WhereClause *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pWStack_2a0" & identifier))) ;) (expression_statement "pWStack_29c = pWVar25;" (assignment_expression "pWStack_29c = pWVar25" identifier = identifier) ;) (expression_statement "pWStack_28c = pWVar40;" (assignment_expression "pWStack_28c = pWVar40" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0) goto LAB_00081310;" if (parenthesized_expression "(*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar10 + 0x10) + 0x38) != 0" (pointer_expression "*(int *)(*(int *)(iVar10 + 0x10) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar10 + 0x10) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 0x38)" ( (binary_expression "*(int *)(iVar10 + 0x10) + 0x38" (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00081310;" goto statement_identifier ;)) (labeled_statement "LAB_000813ec:\n              WStack_310.n = 0;" statement_identifier : (expression_statement "WStack_310.n = 0;" (assignment_expression "WStack_310.n = 0" (field_expression "WStack_310.n" identifier . field_identifier) = number_literal) ;)) (expression_statement "iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34));" (assignment_expression "iVar53 = whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34))" identifier = (call_expression "whereLoopAddBtree(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34))" identifier (argument_list "(&WStack_364,CONCAT44(in_stack_fffffc30,in_stack_fffffc34))" ( (pointer_expression "&WStack_364" & identifier) , (call_expression "CONCAT44(in_stack_fffffc30,in_stack_fffffc34)" identifier (argument_list "(in_stack_fffffc30,in_stack_fffffc34)" ( identifier , identifier ))) )))) ;) (expression_statement "puVar55 = puVar54;" (assignment_expression "puVar55 = puVar54" identifier = identifier) ;) (goto_statement "goto joined_r0x00081334;" goto statement_identifier ;) })) }) (else_clause "else {\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }" else (compound_statement "{\n            WStack_364.pWC = *(WhereClause **)&pWVar40->u;\n            if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            WStack_310.n = 0;\n            in_stack_fffffc30 = &_gp;\n            in_stack_fffffc34 = uStack_c4;\n            iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));\n            puVar55 = puVar54;\njoined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }\n            uVar34 = (uint)WStack_310.n;\n            if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }\n          }" { (expression_statement "WStack_364.pWC = *(WhereClause **)&pWVar40->u;" (assignment_expression "WStack_364.pWC = *(WhereClause **)&pWVar40->u" (field_expression "WStack_364.pWC" identifier . field_identifier) = (pointer_expression "*(WhereClause **)&pWVar40->u" * (cast_expression "(WhereClause **)&pWVar40->u" ( (type_descriptor "WhereClause **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pWVar40->u" & (field_expression "pWVar40->u" identifier -> field_identifier))))) ;) (if_statement "if (*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0) goto LAB_000813ec;" if (parenthesized_expression "(*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar10 + 0x10) + 0x38) == 0" (pointer_expression "*(int *)(*(int *)(iVar10 + 0x10) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar10 + 0x10) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 0x38)" ( (binary_expression "*(int *)(iVar10 + 0x10) + 0x38" (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000813ec;" goto statement_identifier ;)) (labeled_statement "LAB_00081310:\n            WStack_310.n = 0;" statement_identifier : (expression_statement "WStack_310.n = 0;" (assignment_expression "WStack_310.n = 0" (field_expression "WStack_310.n" identifier . field_identifier) = number_literal) ;)) (expression_statement "in_stack_fffffc30 = &_gp;" (assignment_expression "in_stack_fffffc30 = &_gp" identifier = (pointer_expression "&_gp" & identifier)) ;) (expression_statement "in_stack_fffffc34 = uStack_c4;" (assignment_expression "in_stack_fffffc34 = uStack_c4" identifier = identifier) ;) (expression_statement "iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c));" (assignment_expression "iVar53 = whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c))" identifier = (call_expression "whereLoopAddVirtual(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c))" identifier (argument_list "(&WStack_364,CONCAT44(&_gp,uStack_c4),\n                                         CONCAT44(puVar54,in_stack_fffffc3c))" ( (pointer_expression "&WStack_364" & identifier) , (call_expression "CONCAT44(&_gp,uStack_c4)" identifier (argument_list "(&_gp,uStack_c4)" ( (pointer_expression "&_gp" & identifier) , identifier ))) , (call_expression "CONCAT44(puVar54,in_stack_fffffc3c)" identifier (argument_list "(puVar54,in_stack_fffffc3c)" ( identifier , identifier ))) )))) ;) (expression_statement "puVar55 = puVar54;" (assignment_expression "puVar55 = puVar54" identifier = identifier) ;) (labeled_statement "joined_r0x00081334:\n            if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }" statement_identifier : (if_statement "if (iVar53 == 0) {\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }" if (parenthesized_expression "(iVar53 == 0)" ( (binary_expression "iVar53 == 0" identifier == number_literal) )) (compound_statement "{\n              in_stack_fffffc30 = &_gp;\n              in_stack_fffffc34 = uStack_c4;\n              iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);\n            }" { (expression_statement "in_stack_fffffc30 = &_gp;" (assignment_expression "in_stack_fffffc30 = &_gp" identifier = (pointer_expression "&_gp" & identifier)) ;) (expression_statement "in_stack_fffffc34 = uStack_c4;" (assignment_expression "in_stack_fffffc34 = uStack_c4" identifier = identifier) ;) (expression_statement "iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364);" (assignment_expression "iVar53 = (*(code *)(iVar17 + 0x10a8))(&WStack_364)" identifier = (call_expression "(*(code *)(iVar17 + 0x10a8))(&WStack_364)" (parenthesized_expression "(*(code *)(iVar17 + 0x10a8))" ( (pointer_expression "*(code *)(iVar17 + 0x10a8)" * (cast_expression "(code *)(iVar17 + 0x10a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10a8)" ( (binary_expression "iVar17 + 0x10a8" identifier + number_literal) )))) )) (argument_list "(&WStack_364)" ( (pointer_expression "&WStack_364" & identifier) )))) ;) }))) (expression_statement "uVar34 = (uint)WStack_310.n;" (assignment_expression "uVar34 = (uint)WStack_310.n" identifier = (cast_expression "(uint)WStack_310.n" ( (type_descriptor "uint" type_identifier) ) (field_expression "WStack_310.n" identifier . field_identifier))) ;) (if_statement "if (uVar34 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }" if (parenthesized_expression "(uVar34 == 0)" ( (binary_expression "uVar34 == 0" identifier == number_literal) )) (compound_statement "{\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              break;\n            }" { (expression_statement "uStack_348 = uStack_348 & 0xffff;" (assignment_expression "uStack_348 = uStack_348 & 0xffff" identifier = (binary_expression "uStack_348 & 0xffff" identifier & number_literal)) ;) (expression_statement "puVar54 = puVar55;" (assignment_expression "puVar54 = puVar55" identifier = identifier) ;) (break_statement "break;" break ;) })) (if_statement "if (bVar3) {\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }\n            else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n              uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);\n              (**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);\n              bVar3 = false;\n              puVar54 = puVar55;\n            }" { (expression_statement "uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_);" (assignment_expression "uStack_348 = CONCAT22(WStack_310.n,uStack_348._2_2_)" identifier = (call_expression "CONCAT22(WStack_310.n,uStack_348._2_2_)" identifier (argument_list "(WStack_310.n,uStack_348._2_2_)" ( (field_expression "WStack_310.n" identifier . field_identifier) , (field_expression "uStack_348._2_2_" identifier . field_identifier) )))) ;) (expression_statement "(**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30);" (call_expression "(**(code **)(puVar55 + -0x7bdc))(&uStack_340,WStack_310.a,uVar34 << 4,0x30)" (parenthesized_expression "(**(code **)(puVar55 + -0x7bdc))" ( (pointer_expression "**(code **)(puVar55 + -0x7bdc)" * (pointer_expression "*(code **)(puVar55 + -0x7bdc)" * (cast_expression "(code **)(puVar55 + -0x7bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar55 + -0x7bdc)" ( (binary_expression "puVar55 + -0x7bdc" identifier + number_literal) ))))) )) (argument_list "(&uStack_340,WStack_310.a,uVar34 << 4,0x30)" ( (pointer_expression "&uStack_340" & identifier) , (field_expression "WStack_310.a" identifier . field_identifier) , (binary_expression "uVar34 << 4" identifier << number_literal) , number_literal ))) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "puVar54 = puVar55;" (assignment_expression "puVar54 = puVar55" identifier = identifier) ;) }) (else_clause "else {\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }" else (compound_statement "{\n              uVar46 = (uint)uStack_348._0_2_;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              puVar54 = puVar55;\n              if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }\n            }" { (expression_statement "uVar46 = (uint)uStack_348._0_2_;" (assignment_expression "uVar46 = (uint)uStack_348._0_2_" identifier = (cast_expression "(uint)uStack_348._0_2_" ( (type_descriptor "uint" type_identifier) ) (field_expression "uStack_348._0_2_" identifier . field_identifier))) ;) (expression_statement "auStack_2d8[0] = uStack_348._0_2_;" (assignment_expression "auStack_2d8[0] = uStack_348._0_2_" (subscript_expression "auStack_2d8[0]" identifier [ number_literal ]) = (field_expression "uStack_348._0_2_" identifier . field_identifier)) ;) (expression_statement "(**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30);" (call_expression "(**(code **)(puVar55 + -0x7bdc))(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30)" (parenthesized_expression "(**(code **)(puVar55 + -0x7bdc))" ( (pointer_expression "**(code **)(puVar55 + -0x7bdc)" * (pointer_expression "*(code **)(puVar55 + -0x7bdc)" * (cast_expression "(code **)(puVar55 + -0x7bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar55 + -0x7bdc)" ( (binary_expression "puVar55 + -0x7bdc" identifier + number_literal) ))))) )) (argument_list "(auStack_2d0,&uStack_340,uVar46 * 0x10,0x30)" ( identifier , (pointer_expression "&uStack_340" & identifier) , (binary_expression "uVar46 * 0x10" identifier * number_literal) , number_literal ))) ;) (expression_statement "uStack_348 = uStack_348 & 0xffff;" (assignment_expression "uStack_348 = uStack_348 & 0xffff" identifier = (binary_expression "uStack_348 & 0xffff" identifier & number_literal)) ;) (expression_statement "puVar54 = puVar55;" (assignment_expression "puVar54 = puVar55" identifier = identifier) ;) (if_statement "if (uVar46 != 0) {\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }" if (parenthesized_expression "(uVar46 != 0)" ( (binary_expression "uVar46 != 0" identifier != number_literal) )) (compound_statement "{\n                puVar41 = auStack_2d8;\n                puVar19 = puVar41 + uVar46 * 8;\n                do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);\n              }" { (expression_statement "puVar41 = auStack_2d8;" (assignment_expression "puVar41 = auStack_2d8" identifier = identifier) ;) (expression_statement "puVar19 = puVar41 + uVar46 * 8;" (assignment_expression "puVar19 = puVar41 + uVar46 * 8" identifier = (binary_expression "puVar41 + uVar46 * 8" identifier + (binary_expression "uVar46 * 8" identifier * number_literal))) ;) (do_statement "do {\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                } while (puVar19 != puVar41);" do (compound_statement "{\n                  if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }\n                  puVar41 = puVar41 + 8;\n                  uVar34 = (uint)WStack_310.n;\n                }" { (if_statement "if (uVar34 != 0) {\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }" if (parenthesized_expression "(uVar34 != 0)" ( (binary_expression "uVar34 != 0" identifier != number_literal) )) (compound_statement "{\n                    uVar46 = *(uint *)(puVar41 + 4);\n                    iVar42 = 0;\n                    uVar34 = *(uint *)(puVar41 + 6);\n                    uVar1 = puVar41[8];\n                    uVar2 = puVar41[9];\n                    pWVar8 = &WStack_310;\n                    puVar55 = puVar54;\n                    do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);\n                  }" { (expression_statement "uVar46 = *(uint *)(puVar41 + 4);" (assignment_expression "uVar46 = *(uint *)(puVar41 + 4)" identifier = (pointer_expression "*(uint *)(puVar41 + 4)" * (cast_expression "(uint *)(puVar41 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 4)" ( (binary_expression "puVar41 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = *(uint *)(puVar41 + 6);" (assignment_expression "uVar34 = *(uint *)(puVar41 + 6)" identifier = (pointer_expression "*(uint *)(puVar41 + 6)" * (cast_expression "(uint *)(puVar41 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 6)" ( (binary_expression "puVar41 + 6" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = puVar41[8];" (assignment_expression "uVar1 = puVar41[8]" identifier = (subscript_expression "puVar41[8]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar41[9];" (assignment_expression "uVar2 = puVar41[9]" identifier = (subscript_expression "puVar41[9]" identifier [ number_literal ])) ;) (expression_statement "pWVar8 = &WStack_310;" (assignment_expression "pWVar8 = &WStack_310" identifier = (pointer_expression "&WStack_310" & identifier)) ;) (expression_statement "puVar55 = puVar54;" (assignment_expression "puVar55 = puVar54" identifier = identifier) ;) (do_statement "do {\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    } while (iVar42 < (int)(uint)WStack_310.n);" do (compound_statement "{\n                      pLVar51 = &pWVar8->a[0].rRun;\n                      iVar42 = iVar42 + 1;\n                      pcVar9 = (code *)(iVar16 + 0x358);\n                      in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);\n                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);\n                      (*(code *)(iVar15 + -0x58))(&uStack_348);\n                      pWVar8 = (WhereOrSet *)pLVar51;\n                      puVar54 = puVar55;\n                    }" { (expression_statement "pLVar51 = &pWVar8->a[0].rRun;" (assignment_expression "pLVar51 = &pWVar8->a[0].rRun" identifier = (pointer_expression "&pWVar8->a[0].rRun" & (field_expression "pWVar8->a[0].rRun" (subscript_expression "pWVar8->a[0]" (field_expression "pWVar8->a" identifier -> field_identifier) [ number_literal ]) . field_identifier))) ;) (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" identifier = (binary_expression "iVar42 + 1" identifier + number_literal)) ;) (expression_statement "pcVar9 = (code *)(iVar16 + 0x358);" (assignment_expression "pcVar9 = (code *)(iVar16 + 0x358)" identifier = (cast_expression "(code *)(iVar16 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x358)" ( (binary_expression "iVar16 + 0x358" identifier + number_literal) )))) ;) (expression_statement "in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34);" (assignment_expression "in_stack_fffffc30 =\n                           (undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34)" identifier = (cast_expression "(undefined1 *)\n                           (*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(iVar16 + 0x358))\n                                     ((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34)" (parenthesized_expression "(*(code *)(iVar16 + 0x358))" ( (pointer_expression "*(code *)(iVar16 + 0x358)" * (cast_expression "(code *)(iVar16 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x358)" ( (binary_expression "iVar16 + 0x358" identifier + number_literal) )))) )) (argument_list "((int)(short)uVar1,(int)*pLVar51,\n                                      *(uint *)&pWVar8->a[0].prereq | uVar46,\n                                      (uint)pWVar8->a[0].prereq | uVar34)" ( (cast_expression "(int)(short)uVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) , (cast_expression "(int)*pLVar51" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pLVar51" * identifier)) , (binary_expression "*(uint *)&pWVar8->a[0].prereq | uVar46" (pointer_expression "*(uint *)&pWVar8->a[0].prereq" * (cast_expression "(uint *)&pWVar8->a[0].prereq" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pWVar8->a[0].prereq" & (field_expression "pWVar8->a[0].prereq" (subscript_expression "pWVar8->a[0]" (field_expression "pWVar8->a" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) | identifier) , (binary_expression "(uint)pWVar8->a[0].prereq | uVar34" (cast_expression "(uint)pWVar8->a[0].prereq" ( (type_descriptor "uint" type_identifier) ) (field_expression "pWVar8->a[0].prereq" (subscript_expression "pWVar8->a[0]" (field_expression "pWVar8->a" identifier -> field_identifier) [ number_literal ]) . field_identifier)) | identifier) ))))) ;) (expression_statement "in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut);" (assignment_expression "in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut)" identifier = (call_expression "(*pcVar9)((int)(short)uVar2,(int)pWVar8->a[0].nOut)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)(short)uVar2,(int)pWVar8->a[0].nOut)" ( (cast_expression "(int)(short)uVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)uVar2" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) , (cast_expression "(int)pWVar8->a[0].nOut" ( (type_descriptor "int" primitive_type) ) (field_expression "pWVar8->a[0].nOut" (subscript_expression "pWVar8->a[0]" (field_expression "pWVar8->a" identifier -> field_identifier) [ number_literal ]) . field_identifier)) )))) ;) (expression_statement "(*(code *)(iVar15 + -0x58))(&uStack_348);" (call_expression "(*(code *)(iVar15 + -0x58))(&uStack_348)" (parenthesized_expression "(*(code *)(iVar15 + -0x58))" ( (pointer_expression "*(code *)(iVar15 + -0x58)" * (cast_expression "(code *)(iVar15 + -0x58)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x58)" ( (binary_expression "iVar15 + -0x58" identifier + number_literal) )))) )) (argument_list "(&uStack_348)" ( (pointer_expression "&uStack_348" & identifier) ))) ;) (expression_statement "pWVar8 = (WhereOrSet *)pLVar51;" (assignment_expression "pWVar8 = (WhereOrSet *)pLVar51" identifier = (cast_expression "(WhereOrSet *)pLVar51" ( (type_descriptor "WhereOrSet *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar54 = puVar55;" (assignment_expression "puVar54 = puVar55" identifier = identifier) ;) }) while (parenthesized_expression "(iVar42 < (int)(uint)WStack_310.n)" ( (binary_expression "iVar42 < (int)(uint)WStack_310.n" identifier < (cast_expression "(int)(uint)WStack_310.n" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)WStack_310.n" ( (type_descriptor "uint" type_identifier) ) (field_expression "WStack_310.n" identifier . field_identifier)))) )) ;) })) (expression_statement "puVar41 = puVar41 + 8;" (assignment_expression "puVar41 = puVar41 + 8" identifier = (binary_expression "puVar41 + 8" identifier + number_literal)) ;) (expression_statement "uVar34 = (uint)WStack_310.n;" (assignment_expression "uVar34 = (uint)WStack_310.n" identifier = (cast_expression "(uint)WStack_310.n" ( (type_descriptor "uint" type_identifier) ) (field_expression "WStack_310.n" identifier . field_identifier))) ;) }) while (parenthesized_expression "(puVar19 != puVar41)" ( (binary_expression "puVar19 != puVar41" identifier != identifier) )) ;) })) }))) }))) (expression_statement "pWVar40 = pWVar40 + 1;" (assignment_expression "pWVar40 = pWVar40 + 1" identifier = (binary_expression "pWVar40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pWVar40 < pWVar18)" ( (binary_expression "pWVar40 < pWVar18" identifier < identifier) )) ;) (expression_statement "*(undefined2 *)(puVar50 + 10) = 1;" (assignment_expression "*(undefined2 *)(puVar50 + 10) = 1" (pointer_expression "*(undefined2 *)(puVar50 + 10)" * (cast_expression "(undefined2 *)(puVar50 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 10)" ( (binary_expression "puVar50 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(WhereTerm **)puVar50[0xc] = pWVar28;" (assignment_expression "*(WhereTerm **)puVar50[0xc] = pWVar28" (pointer_expression "*(WhereTerm **)puVar50[0xc]" * (cast_expression "(WhereTerm **)puVar50[0xc]" ( (type_descriptor "WhereTerm **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar50[0xc]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "*(undefined2 *)((int)puVar50 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar50 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar50 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar50 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x12)" ( (binary_expression "(int)puVar50 + 0x12" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar50[9] = 0x2000;" (assignment_expression "puVar50[9] = 0x2000" (subscript_expression "puVar50[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x11)" ( (binary_expression "(int)puVar50 + 0x11" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar50 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar50 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar50 + 6)" * (cast_expression "(undefined1 *)(puVar50 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 6)" ( (binary_expression "puVar50 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x19) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x19) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x19)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x19)" ( (binary_expression "(int)puVar50 + 0x19" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x1a)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x1a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x1a)" ( (binary_expression "(int)puVar50 + 0x1a" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x1b) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x1b)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x1b)" ( (binary_expression "(int)puVar50 + 0x1b" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar50 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar50 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar50 + 7)" * (cast_expression "(undefined1 *)(puVar50 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 7)" ( (binary_expression "puVar50 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x1d)" ( (binary_expression "(int)puVar50 + 0x1d" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x1e)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x1e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x1e)" ( (binary_expression "(int)puVar50 + 0x1e" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x1f)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x1f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x1f)" ( (binary_expression "(int)puVar50 + 0x1f" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar50 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar50 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar50 + 8)" * (cast_expression "(undefined1 *)(puVar50 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 8)" ( (binary_expression "puVar50 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x21) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x21) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x21)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x21)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x21)" ( (binary_expression "(int)puVar50 + 0x21" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x22) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x22) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x22)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x22)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x22)" ( (binary_expression "(int)puVar50 + 0x22" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x23) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x23) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x23)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x23)" ( (binary_expression "(int)puVar50 + 0x23" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (iVar53 != 0) goto LAB_0008120c;" if (parenthesized_expression "(iVar53 != 0)" ( (binary_expression "iVar53 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008120c;" goto statement_identifier ;)) }) (else_clause "else {\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n      }" else (compound_statement "{\n        *(undefined2 *)(puVar50 + 10) = 1;\n        *(WhereTerm **)puVar50[0xc] = pWVar28;\n        *(undefined2 *)((int)puVar50 + 0x12) = 0;\n        puVar50[9] = 0x2000;\n        *(undefined1 *)((int)puVar50 + 0x11) = 0;\n        *(undefined1 *)(puVar50 + 6) = 0;\n        *(undefined1 *)((int)puVar50 + 0x19) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1b) = 0;\n        *(undefined1 *)(puVar50 + 7) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar50 + 0x1f) = 0;\n        *(undefined1 *)(puVar50 + 8) = 0;\n        *(undefined1 *)((int)puVar50 + 0x21) = 0;\n        *(undefined1 *)((int)puVar50 + 0x22) = 0;\n        *(undefined1 *)((int)puVar50 + 0x23) = 0;\n      }" { (expression_statement "*(undefined2 *)(puVar50 + 10) = 1;" (assignment_expression "*(undefined2 *)(puVar50 + 10) = 1" (pointer_expression "*(undefined2 *)(puVar50 + 10)" * (cast_expression "(undefined2 *)(puVar50 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 10)" ( (binary_expression "puVar50 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(WhereTerm **)puVar50[0xc] = pWVar28;" (assignment_expression "*(WhereTerm **)puVar50[0xc] = pWVar28" (pointer_expression "*(WhereTerm **)puVar50[0xc]" * (cast_expression "(WhereTerm **)puVar50[0xc]" ( (type_descriptor "WhereTerm **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar50[0xc]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "*(undefined2 *)((int)puVar50 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar50 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar50 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar50 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x12)" ( (binary_expression "(int)puVar50 + 0x12" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar50[9] = 0x2000;" (assignment_expression "puVar50[9] = 0x2000" (subscript_expression "puVar50[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x11)" ( (binary_expression "(int)puVar50 + 0x11" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar50 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar50 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar50 + 6)" * (cast_expression "(undefined1 *)(puVar50 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 6)" ( (binary_expression "puVar50 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x19) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x19) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x19)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x19)" ( (binary_expression "(int)puVar50 + 0x19" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x1a)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x1a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x1a)" ( (binary_expression "(int)puVar50 + 0x1a" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x1b) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x1b)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x1b)" ( (binary_expression "(int)puVar50 + 0x1b" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar50 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar50 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar50 + 7)" * (cast_expression "(undefined1 *)(puVar50 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 7)" ( (binary_expression "puVar50 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x1d)" ( (binary_expression "(int)puVar50 + 0x1d" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x1e)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x1e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x1e)" ( (binary_expression "(int)puVar50 + 0x1e" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x1f)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x1f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x1f)" ( (binary_expression "(int)puVar50 + 0x1f" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar50 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar50 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar50 + 8)" * (cast_expression "(undefined1 *)(puVar50 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 8)" ( (binary_expression "puVar50 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x21) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x21) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x21)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x21)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x21)" ( (binary_expression "(int)puVar50 + 0x21" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x22) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x22) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x22)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x22)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x22)" ( (binary_expression "(int)puVar50 + 0x22" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar50 + 0x23) = 0;" (assignment_expression "*(undefined1 *)((int)puVar50 + 0x23) = 0" (pointer_expression "*(undefined1 *)((int)puVar50 + 0x23)" * (cast_expression "(undefined1 *)((int)puVar50 + 0x23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x23)" ( (binary_expression "(int)puVar50 + 0x23" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }))) (expression_statement "iVar42 = *(int *)(puVar55 + -0x7ef0);" (assignment_expression "iVar42 = *(int *)(puVar55 + -0x7ef0)" identifier = (pointer_expression "*(int *)(puVar55 + -0x7ef0)" * (cast_expression "(int *)(puVar55 + -0x7ef0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar55 + -0x7ef0)" ( (binary_expression "puVar55 + -0x7ef0" identifier + number_literal) ))))) ;) (if_statement "if (uStack_348._0_2_ != 0) {\n        iVar47 = 0;\n        puVar43 = &uStack_348;\n        puVar55 = puVar54;\n        do {\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        } while (iVar47 < (int)(uStack_348 >> 0x10));\n      }" if (parenthesized_expression "(uStack_348._0_2_ != 0)" ( (binary_expression "uStack_348._0_2_ != 0" (field_expression "uStack_348._0_2_" identifier . field_identifier) != number_literal) )) (compound_statement "{\n        iVar47 = 0;\n        puVar43 = &uStack_348;\n        puVar55 = puVar54;\n        do {\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        } while (iVar47 < (int)(uStack_348 >> 0x10));\n      }" { (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" identifier = number_literal) ;) (expression_statement "puVar43 = &uStack_348;" (assignment_expression "puVar43 = &uStack_348" identifier = (pointer_expression "&uStack_348" & identifier)) ;) (expression_statement "puVar55 = puVar54;" (assignment_expression "puVar55 = puVar54" identifier = identifier) ;) (do_statement "do {\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        } while (iVar47 < (int)(uStack_348 >> 0x10));" do (compound_statement "{\n          iVar47 = iVar47 + 1;\n          *(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;\n          *(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);\n          uVar34 = puVar43[2];\n          puVar50[1] = puVar43[3];\n          *puVar50 = uVar34;\n          iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);\n          if (iVar53 != 0) goto LAB_0008120c;\n          puVar43 = puVar43 + 4;\n          puVar54 = puVar55;\n        }" { (expression_statement "iVar47 = iVar47 + 1;" (assignment_expression "iVar47 = iVar47 + 1" identifier = (binary_expression "iVar47 + 1" identifier + number_literal)) ;) (expression_statement "*(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1;" (assignment_expression "*(short *)(puVar50 + 5) = *(short *)(puVar43 + 4) + 1" (pointer_expression "*(short *)(puVar50 + 5)" * (cast_expression "(short *)(puVar50 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 5)" ( (binary_expression "puVar50 + 5" identifier + number_literal) )))) = (binary_expression "*(short *)(puVar43 + 4) + 1" (pointer_expression "*(short *)(puVar43 + 4)" * (cast_expression "(short *)(puVar43 + 4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 4)" ( (binary_expression "puVar43 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12);" (assignment_expression "*(undefined2 *)((int)puVar50 + 0x16) = *(undefined2 *)((int)puVar43 + 0x12)" (pointer_expression "*(undefined2 *)((int)puVar50 + 0x16)" * (cast_expression "(undefined2 *)((int)puVar50 + 0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 0x16)" ( (binary_expression "(int)puVar50 + 0x16" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined2 *)((int)puVar43 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar43 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar43 + 0x12)" ( (binary_expression "(int)puVar43 + 0x12" (cast_expression "(int)puVar43" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar34 = puVar43[2];" (assignment_expression "uVar34 = puVar43[2]" identifier = (subscript_expression "puVar43[2]" identifier [ number_literal ])) ;) (expression_statement "puVar50[1] = puVar43[3];" (assignment_expression "puVar50[1] = puVar43[3]" (subscript_expression "puVar50[1]" identifier [ number_literal ]) = (subscript_expression "puVar43[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar50 = uVar34;" (assignment_expression "*puVar50 = uVar34" (pointer_expression "*puVar50" * identifier) = identifier) ;) (expression_statement "iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50);" (assignment_expression "iVar53 = (*(code *)(iVar42 + -0x51d8))(piVar5,puVar50)" identifier = (call_expression "(*(code *)(iVar42 + -0x51d8))(piVar5,puVar50)" (parenthesized_expression "(*(code *)(iVar42 + -0x51d8))" ( (pointer_expression "*(code *)(iVar42 + -0x51d8)" * (cast_expression "(code *)(iVar42 + -0x51d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar42 + -0x51d8)" ( (binary_expression "iVar42 + -0x51d8" identifier + number_literal) )))) )) (argument_list "(piVar5,puVar50)" ( identifier , identifier )))) ;) (if_statement "if (iVar53 != 0) goto LAB_0008120c;" if (parenthesized_expression "(iVar53 != 0)" ( (binary_expression "iVar53 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008120c;" goto statement_identifier ;)) (expression_statement "puVar43 = puVar43 + 4;" (assignment_expression "puVar43 = puVar43 + 4" identifier = (binary_expression "puVar43 + 4" identifier + number_literal)) ;) (expression_statement "puVar54 = puVar55;" (assignment_expression "puVar54 = puVar55" identifier = identifier) ;) }) while (parenthesized_expression "(iVar47 < (int)(uStack_348 >> 0x10))" ( (binary_expression "iVar47 < (int)(uStack_348 >> 0x10)" identifier < (cast_expression "(int)(uStack_348 >> 0x10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uStack_348 >> 0x10)" ( (binary_expression "uStack_348 >> 0x10" identifier >> number_literal) )))) )) ;) })) (expression_statement "pWVar28 = pWVar28 + 1;" (assignment_expression "pWVar28 = pWVar28 + 1" identifier = (binary_expression "pWVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pWVar28 < pWVar52)" ( (binary_expression "pWVar28 < pWVar52" identifier < identifier) )) ;) (expression_statement "iVar53 = 0;" (assignment_expression "iVar53 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00081208:\n    iVar53 = 0;\n  }" else (compound_statement "{\nLAB_00081208:\n    iVar53 = 0;\n  }" { (labeled_statement "LAB_00081208:\n    iVar53 = 0;" statement_identifier : (expression_statement "iVar53 = 0;" (assignment_expression "iVar53 = 0" identifier = number_literal) ;)) }))) (labeled_statement "LAB_0008120c:\n  if (iStack_104 != *piVar13) {\n    iVar10 = (**(code **)(puVar55 + -0x7ba0))();\n    return iVar10;\n  }" statement_identifier : (if_statement "if (iStack_104 != *piVar13) {\n    iVar10 = (**(code **)(puVar55 + -0x7ba0))();\n    return iVar10;\n  }" if (parenthesized_expression "(iStack_104 != *piVar13)" ( (binary_expression "iStack_104 != *piVar13" identifier != (pointer_expression "*piVar13" * identifier)) )) (compound_statement "{\n    iVar10 = (**(code **)(puVar55 + -0x7ba0))();\n    return iVar10;\n  }" { (expression_statement "iVar10 = (**(code **)(puVar55 + -0x7ba0))();" (assignment_expression "iVar10 = (**(code **)(puVar55 + -0x7ba0))()" identifier = (call_expression "(**(code **)(puVar55 + -0x7ba0))()" (parenthesized_expression "(**(code **)(puVar55 + -0x7ba0))" ( (pointer_expression "**(code **)(puVar55 + -0x7ba0)" * (pointer_expression "*(code **)(puVar55 + -0x7ba0)" * (cast_expression "(code **)(puVar55 + -0x7ba0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar55 + -0x7ba0)" ( (binary_expression "puVar55 + -0x7ba0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar10;" return identifier ;) }))) (return_statement "return iVar53;" return identifier ;) (labeled_statement "code_r0x00080e78:\n  ppWVar32 = *(WhereTerm ***)&pIVar38->szIdxRow;" statement_identifier : (expression_statement "ppWVar32 = *(WhereTerm ***)&pIVar38->szIdxRow;" (assignment_expression "ppWVar32 = *(WhereTerm ***)&pIVar38->szIdxRow" identifier = (pointer_expression "*(WhereTerm ***)&pIVar38->szIdxRow" * (cast_expression "(WhereTerm ***)&pIVar38->szIdxRow" ( (type_descriptor "WhereTerm ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&pIVar38->szIdxRow" & (field_expression "pIVar38->szIdxRow" identifier -> field_identifier))))) ;)) (expression_statement "(((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->btree).nEq = 1;" (assignment_expression "(((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->btree).nEq = 1" (field_expression "(((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->btree).nEq" (parenthesized_expression "(((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->btree)" ( (field_expression "((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)->btree" (parenthesized_expression "((anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema)" ( (cast_expression "(anon_union_12_2_d889f21e_for_u *)&pIVar38->pSchema" ( (type_descriptor "anon_union_12_2_d889f21e_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar38->pSchema" & (field_expression "pIVar38->pSchema" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "pIVar38->azColl = (char **)0x0;" (assignment_expression "pIVar38->azColl = (char **)0x0" (field_expression "pIVar38->azColl" identifier -> field_identifier) = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pIVar38->aColExpr = (ExprList *)&Elf32_Ehdr_00010000;" (assignment_expression "pIVar38->aColExpr = (ExprList *)&Elf32_Ehdr_00010000" (field_expression "pIVar38->aColExpr" identifier -> field_identifier) = (cast_expression "(ExprList *)&Elf32_Ehdr_00010000" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&Elf32_Ehdr_00010000" & identifier))) ;) (expression_statement "*ppWVar32 = (WhereTerm *)pWVar49;" (assignment_expression "*ppWVar32 = (WhereTerm *)pWVar49" (pointer_expression "*ppWVar32" * identifier) = (cast_expression "(WhereTerm *)pWVar49" ( (type_descriptor "WhereTerm *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(short *)((int)&pIVar38->zColAff + 2) = sStack_b2;" (assignment_expression "*(short *)((int)&pIVar38->zColAff + 2) = sStack_b2" (pointer_expression "*(short *)((int)&pIVar38->zColAff + 2)" * (cast_expression "(short *)((int)&pIVar38->zColAff + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->zColAff + 2)" ( (binary_expression "(int)&pIVar38->zColAff + 2" (cast_expression "(int)&pIVar38->zColAff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->zColAff" & (field_expression "pIVar38->zColAff" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (if_statement "if ((pTVar6->pSelect == (Select *)0x0) && ((pTVar6->tabFlags & 2) == 0)) {\n    sVar21 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar21 = sStack_b2 + -10;\n  }" if (parenthesized_expression "((pTVar6->pSelect == (Select *)0x0) && ((pTVar6->tabFlags & 2) == 0))" ( (binary_expression "(pTVar6->pSelect == (Select *)0x0) && ((pTVar6->tabFlags & 2) == 0)" (parenthesized_expression "(pTVar6->pSelect == (Select *)0x0)" ( (binary_expression "pTVar6->pSelect == (Select *)0x0" (field_expression "pTVar6->pSelect" identifier -> field_identifier) == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((pTVar6->tabFlags & 2) == 0)" ( (binary_expression "(pTVar6->tabFlags & 2) == 0" (parenthesized_expression "(pTVar6->tabFlags & 2)" ( (binary_expression "pTVar6->tabFlags & 2" (field_expression "pTVar6->tabFlags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    sVar21 = sStack_b2 + 0x1c;\n  }" { (expression_statement "sVar21 = sStack_b2 + 0x1c;" (assignment_expression "sVar21 = sStack_b2 + 0x1c" identifier = (binary_expression "sStack_b2 + 0x1c" identifier + number_literal)) ;) }) (else_clause "else {\n    sVar21 = sStack_b2 + -10;\n  }" else (compound_statement "{\n    sVar21 = sStack_b2 + -10;\n  }" { (expression_statement "sVar21 = sStack_b2 + -10;" (assignment_expression "sVar21 = sStack_b2 + -10" identifier = (binary_expression "sStack_b2 + -10" identifier + number_literal)) ;) }))) (if_statement "if (sVar21 < 0) {\n    *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n  }\n  else {\n    *(short *)((int)&pIVar38->zColAff + 2) = sVar21;\n  }" if (parenthesized_expression "(sVar21 < 0)" ( (binary_expression "sVar21 < 0" identifier < number_literal) )) (compound_statement "{\n    *(LogEst *)((int)&pIVar38->zColAff + 2) = 0;\n  }" { (expression_statement "*(LogEst *)((int)&pIVar38->zColAff + 2) = 0;" (assignment_expression "*(LogEst *)((int)&pIVar38->zColAff + 2) = 0" (pointer_expression "*(LogEst *)((int)&pIVar38->zColAff + 2)" * (cast_expression "(LogEst *)((int)&pIVar38->zColAff + 2)" ( (type_descriptor "LogEst *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->zColAff + 2)" ( (binary_expression "(int)&pIVar38->zColAff + 2" (cast_expression "(int)&pIVar38->zColAff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->zColAff" & (field_expression "pIVar38->zColAff" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    *(short *)((int)&pIVar38->zColAff + 2) = sVar21;\n  }" else (compound_statement "{\n    *(short *)((int)&pIVar38->zColAff + 2) = sVar21;\n  }" { (expression_statement "*(short *)((int)&pIVar38->zColAff + 2) = sVar21;" (assignment_expression "*(short *)((int)&pIVar38->zColAff + 2) = sVar21" (pointer_expression "*(short *)((int)&pIVar38->zColAff + 2)" * (cast_expression "(short *)((int)&pIVar38->zColAff + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->zColAff + 2)" ( (binary_expression "(int)&pIVar38->zColAff + 2" (cast_expression "(int)&pIVar38->zColAff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->zColAff" & (field_expression "pIVar38->zColAff" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) }))) (expression_statement "*(LogEst *)((int)&pIVar38->pNext + 2) = 0x2b;" (assignment_expression "*(LogEst *)((int)&pIVar38->pNext + 2) = 0x2b" (pointer_expression "*(LogEst *)((int)&pIVar38->pNext + 2)" * (cast_expression "(LogEst *)((int)&pIVar38->pNext + 2)" ( (type_descriptor "LogEst *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->pNext + 2)" ( (binary_expression "(int)&pIVar38->pNext + 2" (cast_expression "(int)&pIVar38->pNext" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->pNext" & (field_expression "pIVar38->pNext" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "LVar20 = (*pcVar27)(pIVar7,0x2b);" (assignment_expression "LVar20 = (*pcVar27)(pIVar7,0x2b)" identifier = (call_expression "(*pcVar27)(pIVar7,0x2b)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(pIVar7,0x2b)" ( identifier , number_literal )))) ;) (expression_statement "*(LogEst *)&pIVar38->pNext = LVar20;" (assignment_expression "*(LogEst *)&pIVar38->pNext = LVar20" (pointer_expression "*(LogEst *)&pIVar38->pNext" * (cast_expression "(LogEst *)&pIVar38->pNext" ( (type_descriptor "LogEst *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar38->pNext" & (field_expression "pIVar38->pNext" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pIVar38->pPartIdxWhere = (Expr *)0x4000;" (assignment_expression "pIVar38->pPartIdxWhere = (Expr *)0x4000" (field_expression "pIVar38->pPartIdxWhere" identifier -> field_identifier) = (cast_expression "(Expr *)0x4000" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar38->zName = (char *)(pWVar49->iContinue | (uint)in_a2);" (assignment_expression "pIVar38->zName = (char *)(pWVar49->iContinue | (uint)in_a2)" (field_expression "pIVar38->zName" identifier -> field_identifier) = (cast_expression "(char *)(pWVar49->iContinue | (uint)in_a2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pWVar49->iContinue | (uint)in_a2)" ( (binary_expression "pWVar49->iContinue | (uint)in_a2" (field_expression "pWVar49->iContinue" identifier -> field_identifier) | (cast_expression "(uint)in_a2" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pIVar38->aiColumn = (i16 *)(pWVar49->iBreak | (uint)in_a3);" (assignment_expression "pIVar38->aiColumn = (i16 *)(pWVar49->iBreak | (uint)in_a3)" (field_expression "pIVar38->aiColumn" identifier -> field_identifier) = (cast_expression "(i16 *)(pWVar49->iBreak | (uint)in_a3)" ( (type_descriptor "i16 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pWVar49->iBreak | (uint)in_a3)" ( (binary_expression "pWVar49->iBreak | (uint)in_a3" (field_expression "pWVar49->iBreak" identifier -> field_identifier) | (cast_expression "(uint)in_a3" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "iVar10 = (*pcVar9)(pBuilder,pIVar38);" (assignment_expression "iVar10 = (*pcVar9)(pBuilder,pIVar38)" identifier = (call_expression "(*pcVar9)(pBuilder,pIVar38)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(pBuilder,pIVar38)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 != 0) goto LAB_00080a6c;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;)) (goto_statement "goto LAB_00080e28;" goto statement_identifier ;) (labeled_statement "LAB_00080b5c:\n  psVar30 = psVar30 + 1;" statement_identifier : (expression_statement "psVar30 = psVar30 + 1;" (assignment_expression "psVar30 = psVar30 + 1" identifier = (binary_expression "psVar30 + 1" identifier + number_literal)) ;)) (if_statement "if (psVar31 == psVar30) goto LAB_00080938;" if (parenthesized_expression "(psVar31 == psVar30)" ( (binary_expression "psVar31 == psVar30" identifier == identifier) )) (goto_statement "goto LAB_00080938;" goto statement_identifier ;)) (if_statement "if (iVar14 == *psVar30) goto LAB_00080b70;" if (parenthesized_expression "(iVar14 == *psVar30)" ( (binary_expression "iVar14 == *psVar30" identifier == (pointer_expression "*psVar30" * identifier)) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (goto_statement "goto LAB_00080b5c;" goto statement_identifier ;) (labeled_statement "LAB_00080938:\n  iVar10 = iVar10 + 1;" statement_identifier : (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;)) (expression_statement "pEVar39 = pEVar39 + 1;" (assignment_expression "pEVar39 = pEVar39 + 1" identifier = (binary_expression "pEVar39 + 1" identifier + number_literal)) ;) (if_statement "if (pEVar26->nExpr <= iVar10) goto code_r0x00080948;" if (parenthesized_expression "(pEVar26->nExpr <= iVar10)" ( (binary_expression "pEVar26->nExpr <= iVar10" (field_expression "pEVar26->nExpr" identifier -> field_identifier) <= identifier) )) (goto_statement "goto code_r0x00080948;" goto statement_identifier ;)) (goto_statement "goto LAB_000808d4;" goto statement_identifier ;) (labeled_statement "code_r0x00080948:\n  bVar22 = pProbe->field_0x37;" statement_identifier : (expression_statement "bVar22 = pProbe->field_0x37;" (assignment_expression "bVar22 = pProbe->field_0x37" identifier = (field_expression "pProbe->field_0x37" identifier -> field_identifier)) ;)) (labeled_statement "LAB_0008095c:\n  if ((bVar22 & 0xc0) == 0xc0) {\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\nLAB_00080c28:\n    *(short *)&pIVar38->pNext = sVar21 + 0x10;\n    *(byte *)((int)&pIVar38->zColAff + 1) = bVar29;\n    iVar10 = pWVar25->nTerm;\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar22 & 4) == 0) {\n      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;\n      pEVar11 = (Expr *)0x240;\n      if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }\n      pIVar38->pPartIdxWhere = pEVar11;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      uVar23 = cVar24 + '\x01';\nLAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n      *(short *)&pIVar38->pNext = sVar33;\n      if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }\n    }\n    else {\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }\n    iVar10 = pWVar25->nTerm;\n  }" statement_identifier : (if_statement "if ((bVar22 & 0xc0) == 0xc0) {\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\nLAB_00080c28:\n    *(short *)&pIVar38->pNext = sVar21 + 0x10;\n    *(byte *)((int)&pIVar38->zColAff + 1) = bVar29;\n    iVar10 = pWVar25->nTerm;\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar22 & 4) == 0) {\n      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;\n      pEVar11 = (Expr *)0x240;\n      if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }\n      pIVar38->pPartIdxWhere = pEVar11;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      uVar23 = cVar24 + '\x01';\nLAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n      *(short *)&pIVar38->pNext = sVar33;\n      if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }\n    }\n    else {\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }\n    iVar10 = pWVar25->nTerm;\n  }" if (parenthesized_expression "((bVar22 & 0xc0) == 0xc0)" ( (binary_expression "(bVar22 & 0xc0) == 0xc0" (parenthesized_expression "(bVar22 & 0xc0)" ( (binary_expression "bVar22 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\nLAB_00080c28:\n    *(short *)&pIVar38->pNext = sVar21 + 0x10;\n    *(byte *)((int)&pIVar38->zColAff + 1) = bVar29;\n    iVar10 = pWVar25->nTerm;\n  }" { (expression_statement "pIVar38->pPartIdxWhere = (Expr *)0x100;" (assignment_expression "pIVar38->pPartIdxWhere = (Expr *)0x100" (field_expression "pIVar38->pPartIdxWhere" identifier -> field_identifier) = (cast_expression "(Expr *)0x100" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00080c28:\n    *(short *)&pIVar38->pNext = sVar21 + 0x10;" statement_identifier : (expression_statement "*(short *)&pIVar38->pNext = sVar21 + 0x10;" (assignment_expression "*(short *)&pIVar38->pNext = sVar21 + 0x10" (pointer_expression "*(short *)&pIVar38->pNext" * (cast_expression "(short *)&pIVar38->pNext" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar38->pNext" & (field_expression "pIVar38->pNext" identifier -> field_identifier)))) = (binary_expression "sVar21 + 0x10" identifier + number_literal)) ;)) (expression_statement "*(byte *)((int)&pIVar38->zColAff + 1) = bVar29;" (assignment_expression "*(byte *)((int)&pIVar38->zColAff + 1) = bVar29" (pointer_expression "*(byte *)((int)&pIVar38->zColAff + 1)" * (cast_expression "(byte *)((int)&pIVar38->zColAff + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->zColAff + 1)" ( (binary_expression "(int)&pIVar38->zColAff + 1" (cast_expression "(int)&pIVar38->zColAff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->zColAff" & (field_expression "pIVar38->zColAff" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = pWVar25->nTerm;" (assignment_expression "iVar10 = pWVar25->nTerm" identifier = (field_expression "pWVar25->nTerm" identifier -> field_identifier)) ;) }) (else_clause "else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar22 & 4) == 0) {\n      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;\n      pEVar11 = (Expr *)0x240;\n      if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }\n      pIVar38->pPartIdxWhere = pEVar11;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      uVar23 = cVar24 + '\x01';\nLAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n      *(short *)&pIVar38->pNext = sVar33;\n      if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }\n    }\n    else {\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }\n    iVar10 = pWVar25->nTerm;\n  }" else (compound_statement "{\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar22 & 4) == 0) {\n      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;\n      pEVar11 = (Expr *)0x240;\n      if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }\n      pIVar38->pPartIdxWhere = pEVar11;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      uVar23 = cVar24 + '\x01';\nLAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n      *(short *)&pIVar38->pNext = sVar33;\n      if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }\n    }\n    else {\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }\n    iVar10 = pWVar25->nTerm;\n  }" { (labeled_statement "LAB_0008096c:\n    bVar3 = false;" statement_identifier : (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;)) (labeled_statement "joined_r0x00080b94:\n    if ((bVar22 & 4) == 0) {\n      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;\n      pEVar11 = (Expr *)0x240;\n      if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }\n      pIVar38->pPartIdxWhere = pEVar11;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      uVar23 = cVar24 + '\x01';\nLAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n      *(short *)&pIVar38->pNext = sVar33;\n      if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }\n    }\n    else {\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }" statement_identifier : (if_statement "if ((bVar22 & 4) == 0) {\n      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;\n      pEVar11 = (Expr *)0x240;\n      if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }\n      pIVar38->pPartIdxWhere = pEVar11;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      uVar23 = cVar24 + '\x01';\nLAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n      *(short *)&pIVar38->pNext = sVar33;\n      if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }\n    }\n    else {\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }" if (parenthesized_expression "((bVar22 & 4) == 0)" ( (binary_expression "(bVar22 & 4) == 0" (parenthesized_expression "(bVar22 & 4)" ( (binary_expression "bVar22 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;\n      pEVar11 = (Expr *)0x240;\n      if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }\n      pIVar38->pPartIdxWhere = pEVar11;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      uVar23 = cVar24 + '\x01';\nLAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n      *(short *)&pIVar38->pNext = sVar33;\n      if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }\n    }" { (expression_statement "uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed;" (assignment_expression "uVar34 = *(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed" identifier = (binary_expression "*(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed |\n               (uint)pSrc->colUsed & (uint)pProbe->colNotIdxed" (binary_expression "*(uint *)&pSrc->colUsed & *(uint *)&pProbe->colNotIdxed" (pointer_expression "*(uint *)&pSrc->colUsed" * (cast_expression "(uint *)&pSrc->colUsed" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSrc->colUsed" & (field_expression "pSrc->colUsed" identifier -> field_identifier)))) & (pointer_expression "*(uint *)&pProbe->colNotIdxed" * (cast_expression "(uint *)&pProbe->colNotIdxed" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pProbe->colNotIdxed" & (field_expression "pProbe->colNotIdxed" identifier -> field_identifier))))) | (binary_expression "(uint)pSrc->colUsed & (uint)pProbe->colNotIdxed" (cast_expression "(uint)pSrc->colUsed" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSrc->colUsed" identifier -> field_identifier)) & (cast_expression "(uint)pProbe->colNotIdxed" ( (type_descriptor "uint" type_identifier) ) (field_expression "pProbe->colNotIdxed" identifier -> field_identifier))))) ;) (expression_statement "pEVar11 = (Expr *)0x240;" (assignment_expression "pEVar11 = (Expr *)0x240" identifier = (cast_expression "(Expr *)0x240" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar34 != 0) {\n        pEVar11 = (Expr *)0x200;\n      }" if (parenthesized_expression "(uVar34 != 0)" ( (binary_expression "uVar34 != 0" identifier != number_literal) )) (compound_statement "{\n        pEVar11 = (Expr *)0x200;\n      }" { (expression_statement "pEVar11 = (Expr *)0x200;" (assignment_expression "pEVar11 = (Expr *)0x200" identifier = (cast_expression "(Expr *)0x200" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pIVar38->pPartIdxWhere = pEVar11;" (assignment_expression "pIVar38->pPartIdxWhere = pEVar11" (field_expression "pIVar38->pPartIdxWhere" identifier -> field_identifier) = identifier) ;) (if_statement "if (!bVar3) goto LAB_00080984;" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (goto_statement "goto LAB_00080984;" goto statement_identifier ;)) (labeled_statement "LAB_00080bcc:\n      uVar23 = cVar24 + '\x01';" statement_identifier : (expression_statement "uVar23 = cVar24 + '\x01';" (assignment_expression "uVar23 = cVar24 + '\x01'" identifier = (binary_expression "cVar24 + '\x01'" identifier + (char_literal "'\x01'" ' escape_sequence '))) ;)) (labeled_statement "LAB_000809a4:\n      *(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;" statement_identifier : (expression_statement "*(u8 *)((int)&pIVar38->zColAff + 1) = uVar23;" (assignment_expression "*(u8 *)((int)&pIVar38->zColAff + 1) = uVar23" (pointer_expression "*(u8 *)((int)&pIVar38->zColAff + 1)" * (cast_expression "(u8 *)((int)&pIVar38->zColAff + 1)" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->zColAff + 1)" ( (binary_expression "(int)&pIVar38->zColAff + 1" (cast_expression "(int)&pIVar38->zColAff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->zColAff" & (field_expression "pIVar38->zColAff" identifier -> field_identifier))) + number_literal) )))) = identifier) ;)) (if_statement "if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(pTVar6->szTabRow == 0)" ( (binary_expression "pTVar6->szTabRow == 0" (field_expression "pTVar6->szTabRow" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;" (assignment_expression "sVar33 = (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1" identifier = (binary_expression "(short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1" (binary_expression "(short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21" (cast_expression "(short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow)" ( (binary_expression "(pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow" (parenthesized_expression "(pProbe->szIdxRow * 0xf)" ( (binary_expression "pProbe->szIdxRow * 0xf" (field_expression "pProbe->szIdxRow" identifier -> field_identifier) * number_literal) )) / (cast_expression "(int)pTVar6->szTabRow" ( (type_descriptor "int" primitive_type) ) (field_expression "pTVar6->szTabRow" identifier -> field_identifier))) ))) + identifier) + number_literal)) ;) (expression_statement "*(short *)&pIVar38->pNext = sVar33;" (assignment_expression "*(short *)&pIVar38->pNext = sVar33" (pointer_expression "*(short *)&pIVar38->pNext" * (cast_expression "(short *)&pIVar38->pNext" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar38->pNext" & (field_expression "pIVar38->pNext" identifier -> field_identifier)))) = identifier) ;) (if_statement "if (uVar34 != 0) {\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }" if (parenthesized_expression "(uVar34 != 0)" ( (binary_expression "uVar34 != 0" identifier != number_literal) )) (compound_statement "{\n        pIVar7 = (Index *)pSrc->iCursor;\n        pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);\n        if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }\n        LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);\n        *(LogEst *)&pIVar38->pNext = LVar20;\n      }" { (expression_statement "pIVar7 = (Index *)pSrc->iCursor;" (assignment_expression "pIVar7 = (Index *)pSrc->iCursor" identifier = (cast_expression "(Index *)pSrc->iCursor" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSrc->iCursor" identifier -> field_identifier))) ;) (expression_statement "pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10);" (assignment_expression "pWVar48 = (WhereInfo *)(int)(short)(sVar21 + 0x10)" identifier = (cast_expression "(WhereInfo *)(int)(short)(sVar21 + 0x10)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(short)(sVar21 + 0x10)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)(sVar21 + 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(sVar21 + 0x10)" ( (binary_expression "sVar21 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if (0 < (pWVar44->sWC).nTerm) {\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }" if (parenthesized_expression "(0 < (pWVar44->sWC).nTerm)" ( (binary_expression "0 < (pWVar44->sWC).nTerm" number_literal < (field_expression "(pWVar44->sWC).nTerm" (parenthesized_expression "(pWVar44->sWC)" ( (field_expression "pWVar44->sWC" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n          pWVar45 = (WhereInfo *)0x0;\n          pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);\nLAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;\n        }" { (expression_statement "pWVar45 = (WhereInfo *)0x0;" (assignment_expression "pWVar45 = (WhereInfo *)0x0" identifier = (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254);" (assignment_expression "pcVar12 = (code *)(PTR_LAB_0015b6d8 + 0x7254)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6d8 + 0x7254)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + 0x7254)" ( (binary_expression "PTR_LAB_0015b6d8 + 0x7254" identifier + number_literal) )))) ;) (do_statement "do {\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          } while ((int)pWVar45 < (pWVar44->sWC).nTerm);" do (compound_statement "{\n            while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }\n            if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }\n            pWVar48 = (WhereInfo *)(int)sVar33;\n            pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n          }" { (while_statement "while( true ) {\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));\n              iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);\n              if (iVar10 == 0) goto LAB_00080d34;\n              sVar33 = (short)pWVar48;\n              if (0 < *(short *)&unaff_s6->pIndex) break;\n              pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);\n              pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);\n              if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;\n            }" { (expression_statement "unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1));" (assignment_expression "unaff_s6 = (Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1))" identifier = (cast_expression "(Table *)((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1))" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pWVar44->sWC).a + (int)(pWVar45[-1].a + 1))" ( (binary_expression "(pWVar44->sWC).a + (int)(pWVar45[-1].a + 1)" (field_expression "(pWVar44->sWC).a" (parenthesized_expression "(pWVar44->sWC)" ( (field_expression "pWVar44->sWC" identifier -> field_identifier) )) . field_identifier) + (cast_expression "(int)(pWVar45[-1].a + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pWVar45[-1].a + 1)" ( (binary_expression "pWVar45[-1].a + 1" (field_expression "pWVar45[-1].a" (subscript_expression "pWVar45[-1]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) )))) ;) (expression_statement "iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe);" (assignment_expression "iVar10 = (*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe)" identifier = (call_expression "(*pcVar12)((Expr *)unaff_s6->zName,pIVar7,pProbe)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((Expr *)unaff_s6->zName,pIVar7,pProbe)" ( (cast_expression "(Expr *)unaff_s6->zName" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s6->zName" identifier -> field_identifier)) , identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) goto LAB_00080d34;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00080d34;" goto statement_identifier ;)) (expression_statement "sVar33 = (short)pWVar48;" (assignment_expression "sVar33 = (short)pWVar48" identifier = (cast_expression "(short)pWVar48" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if (0 < *(short *)&unaff_s6->pIndex) break;" if (parenthesized_expression "(0 < *(short *)&unaff_s6->pIndex)" ( (binary_expression "0 < *(short *)&unaff_s6->pIndex" number_literal < (pointer_expression "*(short *)&unaff_s6->pIndex" * (cast_expression "(short *)&unaff_s6->pIndex" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s6->pIndex" & (field_expression "unaff_s6->pIndex" identifier -> field_identifier))))) )) (break_statement "break;" break ;)) (expression_statement "pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);" (assignment_expression "pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1)" identifier = (cast_expression "(WhereInfo *)((int)&pWVar45->pParse + 1)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pWVar45->pParse + 1)" ( (binary_expression "(int)&pWVar45->pParse + 1" (cast_expression "(int)&pWVar45->pParse" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pWVar45->pParse" & (field_expression "pWVar45->pParse" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex);" (assignment_expression "pWVar48 = (WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex)" identifier = (cast_expression "(WhereInfo *)(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(short)(sVar33 + *(short *)&unaff_s6->pIndex)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)(sVar33 + *(short *)&unaff_s6->pIndex)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(sVar33 + *(short *)&unaff_s6->pIndex)" ( (binary_expression "sVar33 + *(short *)&unaff_s6->pIndex" identifier + (pointer_expression "*(short *)&unaff_s6->pIndex" * (cast_expression "(short *)&unaff_s6->pIndex" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s6->pIndex" & (field_expression "unaff_s6->pIndex" identifier -> field_identifier))))) )))))) ;) (if_statement "if ((pWVar44->sWC).nTerm <= (int)pWVar45) goto LAB_00080d34;" if (parenthesized_expression "((pWVar44->sWC).nTerm <= (int)pWVar45)" ( (binary_expression "(pWVar44->sWC).nTerm <= (int)pWVar45" (field_expression "(pWVar44->sWC).nTerm" (parenthesized_expression "(pWVar44->sWC)" ( (field_expression "pWVar44->sWC" identifier -> field_identifier) )) . field_identifier) <= (cast_expression "(int)pWVar45" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00080d34;" goto statement_identifier ;)) })) (if_statement "if (((uint)unaff_s6->pSelect & 0x820000) == 0) {\n              sVar33 = sVar33 + -1;\n            }\n            else {\n              sVar33 = sVar33 + -0x14;\n            }" if (parenthesized_expression "(((uint)unaff_s6->pSelect & 0x820000) == 0)" ( (binary_expression "((uint)unaff_s6->pSelect & 0x820000) == 0" (parenthesized_expression "((uint)unaff_s6->pSelect & 0x820000)" ( (binary_expression "(uint)unaff_s6->pSelect & 0x820000" (cast_expression "(uint)unaff_s6->pSelect" ( (type_descriptor "uint" type_identifier) ) (field_expression "unaff_s6->pSelect" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (compound_statement "{\n              sVar33 = sVar33 + -1;\n            }" { (expression_statement "sVar33 = sVar33 + -1;" (assignment_expression "sVar33 = sVar33 + -1" identifier = (binary_expression "sVar33 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n              sVar33 = sVar33 + -0x14;\n            }" else (compound_statement "{\n              sVar33 = sVar33 + -0x14;\n            }" { (expression_statement "sVar33 = sVar33 + -0x14;" (assignment_expression "sVar33 = sVar33 + -0x14" identifier = (binary_expression "sVar33 + -0x14" identifier + number_literal)) ;) }))) (expression_statement "pWVar48 = (WhereInfo *)(int)sVar33;" (assignment_expression "pWVar48 = (WhereInfo *)(int)sVar33" identifier = (cast_expression "(WhereInfo *)(int)sVar33" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)sVar33" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1);" (assignment_expression "pWVar45 = (WhereInfo *)((int)&pWVar45->pParse + 1)" identifier = (cast_expression "(WhereInfo *)((int)&pWVar45->pParse + 1)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pWVar45->pParse + 1)" ( (binary_expression "(int)&pWVar45->pParse + 1" (cast_expression "(int)&pWVar45->pParse" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pWVar45->pParse" & (field_expression "pWVar45->pParse" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "((int)pWVar45 < (pWVar44->sWC).nTerm)" ( (binary_expression "(int)pWVar45 < (pWVar44->sWC).nTerm" (cast_expression "(int)pWVar45" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "(pWVar44->sWC).nTerm" (parenthesized_expression "(pWVar44->sWC)" ( (field_expression "pWVar44->sWC" identifier -> field_identifier) )) . field_identifier)) )) ;) (labeled_statement "LAB_00080d34:\n          sVar33 = *(short *)&pIVar38->pNext;" statement_identifier : (expression_statement "sVar33 = *(short *)&pIVar38->pNext;" (assignment_expression "sVar33 = *(short *)&pIVar38->pNext" identifier = (pointer_expression "*(short *)&pIVar38->pNext" * (cast_expression "(short *)&pIVar38->pNext" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar38->pNext" & (field_expression "pIVar38->pNext" identifier -> field_identifier))))) ;)) })) (expression_statement "LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48);" (assignment_expression "LVar20 = (*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48)" identifier = (call_expression "(*(code *)(puVar4 + 0x358))((int)sVar33,pWVar48)" (parenthesized_expression "(*(code *)(puVar4 + 0x358))" ( (pointer_expression "*(code *)(puVar4 + 0x358)" * (cast_expression "(code *)(puVar4 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x358)" ( (binary_expression "puVar4 + 0x358" identifier + number_literal) )))) )) (argument_list "((int)sVar33,pWVar48)" ( (cast_expression "(int)sVar33" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "*(LogEst *)&pIVar38->pNext = LVar20;" (assignment_expression "*(LogEst *)&pIVar38->pNext = LVar20" (pointer_expression "*(LogEst *)&pIVar38->pNext" * (cast_expression "(LogEst *)&pIVar38->pNext" ( (type_descriptor "LogEst *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar38->pNext" & (field_expression "pIVar38->pNext" identifier -> field_identifier)))) = identifier) ;) })) }) (else_clause "else {\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }" else (compound_statement "{\n      uVar34 = 0;\n      pIVar38->pPartIdxWhere = (Expr *)0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      uVar23 = '\0';\n      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;\n      if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;\n      *(u8 *)((int)&pIVar38->zColAff + 1) = '\0';\n      if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }\n      *(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;\n    }" { (expression_statement "uVar34 = 0;" (assignment_expression "uVar34 = 0" identifier = number_literal) ;) (expression_statement "pIVar38->pPartIdxWhere = (Expr *)0x240;" (assignment_expression "pIVar38->pPartIdxWhere = (Expr *)0x240" (field_expression "pIVar38->pPartIdxWhere" identifier -> field_identifier) = (cast_expression "(Expr *)0x240" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar3) goto LAB_00080bcc;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00080bcc;" goto statement_identifier ;)) (labeled_statement "LAB_00080984:\n      uVar23 = '\0';" statement_identifier : (expression_statement "uVar23 = '\0';" (assignment_expression "uVar23 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))\n      goto LAB_000809a4;" if (parenthesized_expression "(((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0))" ( (binary_expression "((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0)" (parenthesized_expression "((pTVar6->tabFlags & 0x20) != 0)" ( (binary_expression "(pTVar6->tabFlags & 0x20) != 0" (parenthesized_expression "(pTVar6->tabFlags & 0x20)" ( (binary_expression "pTVar6->tabFlags & 0x20" (field_expression "pTVar6->tabFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0)" ( (comma_expression "uVar23 = '\0', pProbe->pPartIdxWhere != (Expr *)0x0" (assignment_expression "uVar23 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) , (binary_expression "pProbe->pPartIdxWhere != (Expr *)0x0" (field_expression "pProbe->pPartIdxWhere" identifier -> field_identifier) != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000809a4;" goto statement_identifier ;)) (if_statement "if (((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;" if (parenthesized_expression "(((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0))))" ( (binary_expression "((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))" (parenthesized_expression "((uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0))))" ( (binary_expression "(uVar34 != 0) ||\n          ((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))" (parenthesized_expression "(uVar34 != 0)" ( (binary_expression "uVar34 != 0" identifier != number_literal) )) || (parenthesized_expression "((((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)))" ( (parenthesized_expression "(((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0))" ( (binary_expression "((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)) ||\n           ((pWVar44->wctrlFlags & 4) != 0)" (parenthesized_expression "((pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow))" ( (binary_expression "(pProbe->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= pProbe->szIdxRow)" (binary_expression "(pProbe->field_0x37 & 0x20) != 0" (parenthesized_expression "(pProbe->field_0x37 & 0x20)" ( (binary_expression "pProbe->field_0x37 & 0x20" (field_expression "pProbe->field_0x37" identifier -> field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "(pTVar6->szTabRow <= pProbe->szIdxRow)" ( (binary_expression "pTVar6->szTabRow <= pProbe->szIdxRow" (field_expression "pTVar6->szTabRow" identifier -> field_identifier) <= (field_expression "pProbe->szIdxRow" identifier -> field_identifier)) ))) )) || (parenthesized_expression "((pWVar44->wctrlFlags & 4) != 0)" ( (binary_expression "(pWVar44->wctrlFlags & 4) != 0" (parenthesized_expression "(pWVar44->wctrlFlags & 4)" ( (binary_expression "pWVar44->wctrlFlags & 4" (field_expression "pWVar44->wctrlFlags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) ))) )) || (parenthesized_expression "((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))" ( (parenthesized_expression "(*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0))" ( (binary_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)" (binary_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x5dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x5dc8)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x5dc8" identifier + number_literal) )))) == number_literal) || (parenthesized_expression "((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)" ( (binary_expression "(pWVar44->pParse->db->dbOptFlags & 0x20) != 0" (parenthesized_expression "(pWVar44->pParse->db->dbOptFlags & 0x20)" ( (binary_expression "pWVar44->pParse->db->dbOptFlags & 0x20" (field_expression "pWVar44->pParse->db->dbOptFlags" (field_expression "pWVar44->pParse->db" (field_expression "pWVar44->pParse" identifier -> field_identifier) -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00080a28;" goto statement_identifier ;)) (expression_statement "*(u8 *)((int)&pIVar38->zColAff + 1) = '\0';" (assignment_expression "*(u8 *)((int)&pIVar38->zColAff + 1) = '\0'" (pointer_expression "*(u8 *)((int)&pIVar38->zColAff + 1)" * (cast_expression "(u8 *)((int)&pIVar38->zColAff + 1)" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->zColAff + 1)" ( (binary_expression "(int)&pIVar38->zColAff + 1" (cast_expression "(int)&pIVar38->zColAff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->zColAff" & (field_expression "pIVar38->zColAff" identifier -> field_identifier))) + number_literal) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (pTVar6->szTabRow == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(pTVar6->szTabRow == 0)" ( (binary_expression "pTVar6->szTabRow == 0" (field_expression "pTVar6->szTabRow" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "*(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1;" (assignment_expression "*(short *)&pIVar38->pNext =\n           (short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1" (pointer_expression "*(short *)&pIVar38->pNext" * (cast_expression "(short *)&pIVar38->pNext" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar38->pNext" & (field_expression "pIVar38->pNext" identifier -> field_identifier)))) = (binary_expression "(short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21 + 1" (binary_expression "(short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + sVar21" (cast_expression "(short)((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow)" ( (binary_expression "(pProbe->szIdxRow * 0xf) / (int)pTVar6->szTabRow" (parenthesized_expression "(pProbe->szIdxRow * 0xf)" ( (binary_expression "pProbe->szIdxRow * 0xf" (field_expression "pProbe->szIdxRow" identifier -> field_identifier) * number_literal) )) / (cast_expression "(int)pTVar6->szTabRow" ( (type_descriptor "int" primitive_type) ) (field_expression "pTVar6->szTabRow" identifier -> field_identifier))) ))) + identifier) + number_literal)) ;) })))) (expression_statement "iVar10 = pWVar25->nTerm;" (assignment_expression "iVar10 = pWVar25->nTerm" identifier = (field_expression "pWVar25->nTerm" identifier -> field_identifier)) ;) })))) (expression_statement "pIVar36 = pIVar38;" (assignment_expression "pIVar36 = pIVar38" identifier = identifier) ;) (expression_statement "pWVar37 = pWVar49;" (assignment_expression "pWVar37 = pWVar49" identifier = identifier) ;) (expression_statement "(*(code *)(puVar54 + -0x4dc4))(iVar10,&pWVar25->a);" (call_expression "(*(code *)(puVar54 + -0x4dc4))(iVar10,&pWVar25->a)" (parenthesized_expression "(*(code *)(puVar54 + -0x4dc4))" ( (pointer_expression "*(code *)(puVar54 + -0x4dc4)" * (cast_expression "(code *)(puVar54 + -0x4dc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + -0x4dc4)" ( (binary_expression "puVar54 + -0x4dc4" identifier + number_literal) )))) )) (argument_list "(iVar10,&pWVar25->a)" ( identifier , (pointer_expression "&pWVar25->a" & (field_expression "pWVar25->a" identifier -> field_identifier)) ))) ;) (expression_statement "iVar10 = (*pcVar9)(pBuilder,pIVar38);" (assignment_expression "iVar10 = (*pcVar9)(pBuilder,pIVar38)" identifier = (call_expression "(*pcVar9)(pBuilder,pIVar38)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(pBuilder,pIVar38)" ( identifier , identifier )))) ;) (expression_statement "*(short *)((int)&pIVar38->pNext + 2) = sVar21;" (assignment_expression "*(short *)((int)&pIVar38->pNext + 2) = sVar21" (pointer_expression "*(short *)((int)&pIVar38->pNext + 2)" * (cast_expression "(short *)((int)&pIVar38->pNext + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar38->pNext + 2)" ( (binary_expression "(int)&pIVar38->pNext + 2" (cast_expression "(int)&pIVar38->pNext" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar38->pNext" & (field_expression "pIVar38->pNext" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (if_statement "if (iVar10 != 0) goto LAB_00080a6c;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;)) (labeled_statement "LAB_00080a28:\n  pWVar37 = (WhereInfo *)0x0;" statement_identifier : (expression_statement "pWVar37 = (WhereInfo *)0x0;" (assignment_expression "pWVar37 = (WhereInfo *)0x0" identifier = (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pBuilder->bldFlags = 0;" (assignment_expression "pBuilder->bldFlags = 0" (field_expression "pBuilder->bldFlags" identifier -> field_identifier) = number_literal) ;) (expression_statement "pIVar36 = pProbe;" (assignment_expression "pIVar36 = pProbe" identifier = identifier) ;) (expression_statement "iVar10 = whereLoopAddBtreeIndex(pBuilder,pSrc,pProbe,0);" (assignment_expression "iVar10 = whereLoopAddBtreeIndex(pBuilder,pSrc,pProbe,0)" identifier = (call_expression "whereLoopAddBtreeIndex(pBuilder,pSrc,pProbe,0)" identifier (argument_list "(pBuilder,pSrc,pProbe,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (pBuilder->bldFlags == 1) {\n    pTVar6->tabFlags = pTVar6->tabFlags | 0x100;\n  }" if (parenthesized_expression "(pBuilder->bldFlags == 1)" ( (binary_expression "pBuilder->bldFlags == 1" (field_expression "pBuilder->bldFlags" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    pTVar6->tabFlags = pTVar6->tabFlags | 0x100;\n  }" { (expression_statement "pTVar6->tabFlags = pTVar6->tabFlags | 0x100;" (assignment_expression "pTVar6->tabFlags = pTVar6->tabFlags | 0x100" (field_expression "pTVar6->tabFlags" identifier -> field_identifier) = (binary_expression "pTVar6->tabFlags | 0x100" (field_expression "pTVar6->tabFlags" identifier -> field_identifier) | number_literal)) ;) })) (if_statement "if ((pSrc->pIBIndex != (Index *)0x0) || (pProbe = pProbe->pNext, iVar10 != 0)) goto LAB_00080a6c;" if (parenthesized_expression "((pSrc->pIBIndex != (Index *)0x0) || (pProbe = pProbe->pNext, iVar10 != 0))" ( (binary_expression "(pSrc->pIBIndex != (Index *)0x0) || (pProbe = pProbe->pNext, iVar10 != 0)" (parenthesized_expression "(pSrc->pIBIndex != (Index *)0x0)" ( (binary_expression "pSrc->pIBIndex != (Index *)0x0" (field_expression "pSrc->pIBIndex" identifier -> field_identifier) != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pProbe = pProbe->pNext, iVar10 != 0)" ( (comma_expression "pProbe = pProbe->pNext, iVar10 != 0" (assignment_expression "pProbe = pProbe->pNext" identifier = (field_expression "pProbe->pNext" identifier -> field_identifier)) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;)) (labeled_statement "LAB_00080bf4:\n  cVar24 = cVar24 + '\x01';" statement_identifier : (expression_statement "cVar24 = cVar24 + '\x01';" (assignment_expression "cVar24 = cVar24 + '\x01'" identifier = (binary_expression "cVar24 + '\x01'" identifier + (char_literal "'\x01'" ' escape_sequence '))) ;)) (if_statement "if (pProbe == (Index *)0x0) goto code_r0x00080c04;" if (parenthesized_expression "(pProbe == (Index *)0x0)" ( (binary_expression "pProbe == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x00080c04;" goto statement_identifier ;)) (goto_statement "goto LAB_0008081c;" goto statement_identifier ;) (labeled_statement "LAB_00080b70:\n  bVar22 = pProbe->field_0x37;" statement_identifier : (expression_statement "bVar22 = pProbe->field_0x37;" (assignment_expression "bVar22 = pProbe->field_0x37" identifier = (field_expression "pProbe->field_0x37" identifier -> field_identifier)) ;)) (if_statement "if ((bVar22 & 0xc0) == 0xc0) {\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\n    bVar29 = cVar24 + 1;\n    goto LAB_00080c28;\n  }" if (parenthesized_expression "((bVar22 & 0xc0) == 0xc0)" ( (binary_expression "(bVar22 & 0xc0) == 0xc0" (parenthesized_expression "(bVar22 & 0xc0)" ( (binary_expression "bVar22 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    pIVar38->pPartIdxWhere = (Expr *)0x100;\n    bVar29 = cVar24 + 1;\n    goto LAB_00080c28;\n  }" { (expression_statement "pIVar38->pPartIdxWhere = (Expr *)0x100;" (assignment_expression "pIVar38->pPartIdxWhere = (Expr *)0x100" (field_expression "pIVar38->pPartIdxWhere" identifier -> field_identifier) = (cast_expression "(Expr *)0x100" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar29 = cVar24 + 1;" (assignment_expression "bVar29 = cVar24 + 1" identifier = (binary_expression "cVar24 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00080c28;" goto statement_identifier ;) })) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto joined_r0x00080b94;" goto statement_identifier ;) (labeled_statement "code_r0x00080c04:\n  iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;) })))
(translation_unit "int FUN_00080720(int *param_1,undefined4 param_2,uint *param_3,char *param_4)\n\n{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  code *pcVar9;\n  code *pcVar10;\n  byte bVar18;\n  char cVar19;\n  char cVar20;\n  code *pcVar11;\n  undefined2 uVar16;\n  short sVar17;\n  int *piVar12;\n  int iVar13;\n  uint uVar14;\n  ushort *puVar15;\n  int iVar21;\n  byte bVar24;\n  int *piVar22;\n  uint uVar23;\n  short sVar28;\n  undefined4 uVar25;\n  short *psVar26;\n  short *psVar27;\n  uint uVar29;\n  uint *puVar30;\n  char *pcVar31;\n  uint *puVar32;\n  uint uVar33;\n  ushort *puVar34;\n  int iVar35;\n  int iVar36;\n  int iVar37;\n  uint uVar38;\n  char *pcVar39;\n  char *pcVar40;\n  uint uVar41;\n  int iVar42;\n  char *pcVar43;\n  char *pcVar44;\n  undefined4 *puVar45;\n  ushort *puVar46;\n  char *unaff_s5;\n  undefined4 *unaff_s6;\n  int iVar47;\n  undefined *puVar48;\n  uint *puVar49;\n  int iStack_364;\n  undefined4 *puStack_360;\n  undefined4 uStack_35c;\n  int iStack_358;\n  ushort *puStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_348;\n  undefined4 uStack_344;\n  uint uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  ushort auStack_310 [4];\n  uint auStack_308 [12];\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  undefined4 uStack_2a0;\n  undefined4 *puStack_29c;\n  undefined1 uStack_298;\n  undefined4 uStack_294;\n  uint uStack_28c;\n  int iStack_104;\n  uint *puStack_100;\n  int iStack_fc;\n  char *pcStack_f8;\n  char *pcStack_f4;\n  int *piStack_f0;\n  char *pcStack_ec;\n  undefined4 *puStack_e8;\n  uint *puStack_e4;\n  uint *puStack_e0;\n  code *pcStack_dc;\n  uint *puStack_d0;\n  char *pcStack_cc;\n  short sStack_b2;\n  undefined2 local_7a;\n  uint uStack_78;\n  undefined2 *local_74;\n  short *local_70;\n  undefined4 *local_6c;\n  undefined4 local_64;\n  undefined2 local_48;\n  undefined2 local_46;\n  undefined2 local_44;\n  undefined1 local_42;\n  byte local_41;\n  short local_30;\n  undefined2 local_2e;\n  int *local_2c;\n  \n  puVar48 = PTR___stack_chk_guard_0015ba2c;\n  puVar32 = (uint *)param_1[3];\n  iVar21 = param_1[1];\n  pcVar39 = (char *)*param_1;\n  local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;\n  local_7a = 0xffff;\n  iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  puVar6 = *(undefined4 **)(iVar36 + 0x10);\n  puVar49 = *(uint **)(iVar36 + 0x44);\n  puVar30 = param_3;\n  pcVar31 = param_4;\n  if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }\n  if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }\n  if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }\n  puVar5 = PTR_LAB_0015b6d8;\n  puVar4 = PTR_LAB_0015b6c0;\n  cVar20 = '\0';\n  pcVar40 = pcVar39;\n  pcVar44 = pcVar43;\n  if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }\n  pcVar43 = unaff_s5;\n  iVar8 = 0;\nLAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }\n  pcVar9 = FUN_000810a8;\n  piVar22 = local_2c;\n  puVar48 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar48 + 0xda984);\n  puStack_e8 = unaff_s6;\n  puStack_e0 = puVar49;\n  piStack_f0 = param_1;\n  pcStack_dc = pcVar9;\n  puStack_e4 = puVar7;\n  pcStack_ec = pcVar43;\n  pcStack_f4 = pcVar44;\n  pcStack_f8 = pcVar40;\n  iStack_fc = iVar36;\n  puStack_100 = puVar32;\n  puVar6 = (undefined4 *)piVar22[1];\n  puVar32 = (uint *)piVar22[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  uVar29 = puVar6[5] + puVar6[3] * 0x30;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  uVar23 = puVar6[5];\n  iStack_104 = *piVar12;\n  pcStack_cc = pcVar31;\n  puStack_d0 = puVar30;\n  puVar30 = (uint *)(uint)(uVar23 < uVar29);\n  iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  iVar36 = *(int *)(iVar21 + 0x28);\n  if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }\n  iVar21 = iStack_104;\n  (**(code **)(puVar48 + 0xda968))();\n  iVar36 = *(int *)(iVar21 + 0x18);\n  iVar21 = FUN_0007bd64(0);\n  if (iVar21 != 0) {\n    return 0;\n  }\n  *(undefined1 *)puVar30 = 0x9e;\n  puVar30[7] = *(uint *)(iVar36 + 8);\n  uVar23 = *(uint *)(iVar36 + 0xc);\n  puVar30[0xc] = 0;\n  puVar30[8] = uVar23;\n  return 1;\ncode_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;\n  puVar32[8] = 0;\n  puVar32[10] = 0x10000;\n  *(char **)puVar32[0xc] = pcVar44;\n  *(short *)((int)puVar32 + 0x12) = sStack_b2;\n  if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }\n  if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }\n  *(undefined2 *)((int)puVar32 + 0x16) = 0x2b;\n  uVar16 = (*pcVar11)(puVar7,0x2b);\n  *(undefined2 *)(puVar32 + 5) = uVar16;\n  puVar32[9] = 0x4000;\n  *puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;\n  puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  if (iVar8 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\n  while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }\n  pcVar40 = pcVar40 + 1;\n  iVar8 = *piVar22;\nLAB_00080938:\n  iVar37 = iVar37 + 1;\n  piVar12 = piVar12 + 5;\n  if (iVar8 <= iVar37) goto code_r0x00080948;\n  goto LAB_000808d4;\nLAB_00080b5c:\n  psVar26 = psVar26 + 1;\n  if (psVar27 == psVar26) goto LAB_00080938;\n  if (iVar13 == *psVar26) goto LAB_00080b70;\n  goto LAB_00080b5c;\ncode_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\nLAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  puVar30 = puVar32;\n  pcVar31 = pcVar44;\n  (*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  *(short *)((int)puVar32 + 0x16) = sVar17;\n  if (iVar8 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pcVar31 = (char *)0x0;\n  param_1[5] = 0;\n  puVar30 = puVar49;\n  iVar8 = FUN_0007dec0(param_1,iVar36);\n  if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }\n  if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar20 = cVar20 + '\x01';\n  if (puVar49 == (uint *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar8 = 0;\n  goto LAB_00080a6c;\n}\n\n" (function_definition "int FUN_00080720(int *param_1,undefined4 param_2,uint *param_3,char *param_4)\n\n{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  code *pcVar9;\n  code *pcVar10;\n  byte bVar18;\n  char cVar19;\n  char cVar20;\n  code *pcVar11;\n  undefined2 uVar16;\n  short sVar17;\n  int *piVar12;\n  int iVar13;\n  uint uVar14;\n  ushort *puVar15;\n  int iVar21;\n  byte bVar24;\n  int *piVar22;\n  uint uVar23;\n  short sVar28;\n  undefined4 uVar25;\n  short *psVar26;\n  short *psVar27;\n  uint uVar29;\n  uint *puVar30;\n  char *pcVar31;\n  uint *puVar32;\n  uint uVar33;\n  ushort *puVar34;\n  int iVar35;\n  int iVar36;\n  int iVar37;\n  uint uVar38;\n  char *pcVar39;\n  char *pcVar40;\n  uint uVar41;\n  int iVar42;\n  char *pcVar43;\n  char *pcVar44;\n  undefined4 *puVar45;\n  ushort *puVar46;\n  char *unaff_s5;\n  undefined4 *unaff_s6;\n  int iVar47;\n  undefined *puVar48;\n  uint *puVar49;\n  int iStack_364;\n  undefined4 *puStack_360;\n  undefined4 uStack_35c;\n  int iStack_358;\n  ushort *puStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_348;\n  undefined4 uStack_344;\n  uint uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  ushort auStack_310 [4];\n  uint auStack_308 [12];\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  undefined4 uStack_2a0;\n  undefined4 *puStack_29c;\n  undefined1 uStack_298;\n  undefined4 uStack_294;\n  uint uStack_28c;\n  int iStack_104;\n  uint *puStack_100;\n  int iStack_fc;\n  char *pcStack_f8;\n  char *pcStack_f4;\n  int *piStack_f0;\n  char *pcStack_ec;\n  undefined4 *puStack_e8;\n  uint *puStack_e4;\n  uint *puStack_e0;\n  code *pcStack_dc;\n  uint *puStack_d0;\n  char *pcStack_cc;\n  short sStack_b2;\n  undefined2 local_7a;\n  uint uStack_78;\n  undefined2 *local_74;\n  short *local_70;\n  undefined4 *local_6c;\n  undefined4 local_64;\n  undefined2 local_48;\n  undefined2 local_46;\n  undefined2 local_44;\n  undefined1 local_42;\n  byte local_41;\n  short local_30;\n  undefined2 local_2e;\n  int *local_2c;\n  \n  puVar48 = PTR___stack_chk_guard_0015ba2c;\n  puVar32 = (uint *)param_1[3];\n  iVar21 = param_1[1];\n  pcVar39 = (char *)*param_1;\n  local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;\n  local_7a = 0xffff;\n  iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  puVar6 = *(undefined4 **)(iVar36 + 0x10);\n  puVar49 = *(uint **)(iVar36 + 0x44);\n  puVar30 = param_3;\n  pcVar31 = param_4;\n  if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }\n  if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }\n  if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }\n  puVar5 = PTR_LAB_0015b6d8;\n  puVar4 = PTR_LAB_0015b6c0;\n  cVar20 = '\0';\n  pcVar40 = pcVar39;\n  pcVar44 = pcVar43;\n  if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }\n  pcVar43 = unaff_s5;\n  iVar8 = 0;\nLAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }\n  pcVar9 = FUN_000810a8;\n  piVar22 = local_2c;\n  puVar48 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar48 + 0xda984);\n  puStack_e8 = unaff_s6;\n  puStack_e0 = puVar49;\n  piStack_f0 = param_1;\n  pcStack_dc = pcVar9;\n  puStack_e4 = puVar7;\n  pcStack_ec = pcVar43;\n  pcStack_f4 = pcVar44;\n  pcStack_f8 = pcVar40;\n  iStack_fc = iVar36;\n  puStack_100 = puVar32;\n  puVar6 = (undefined4 *)piVar22[1];\n  puVar32 = (uint *)piVar22[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  uVar29 = puVar6[5] + puVar6[3] * 0x30;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  uVar23 = puVar6[5];\n  iStack_104 = *piVar12;\n  pcStack_cc = pcVar31;\n  puStack_d0 = puVar30;\n  puVar30 = (uint *)(uint)(uVar23 < uVar29);\n  iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  iVar36 = *(int *)(iVar21 + 0x28);\n  if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }\n  iVar21 = iStack_104;\n  (**(code **)(puVar48 + 0xda968))();\n  iVar36 = *(int *)(iVar21 + 0x18);\n  iVar21 = FUN_0007bd64(0);\n  if (iVar21 != 0) {\n    return 0;\n  }\n  *(undefined1 *)puVar30 = 0x9e;\n  puVar30[7] = *(uint *)(iVar36 + 8);\n  uVar23 = *(uint *)(iVar36 + 0xc);\n  puVar30[0xc] = 0;\n  puVar30[8] = uVar23;\n  return 1;\ncode_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;\n  puVar32[8] = 0;\n  puVar32[10] = 0x10000;\n  *(char **)puVar32[0xc] = pcVar44;\n  *(short *)((int)puVar32 + 0x12) = sStack_b2;\n  if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }\n  if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }\n  *(undefined2 *)((int)puVar32 + 0x16) = 0x2b;\n  uVar16 = (*pcVar11)(puVar7,0x2b);\n  *(undefined2 *)(puVar32 + 5) = uVar16;\n  puVar32[9] = 0x4000;\n  *puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;\n  puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  if (iVar8 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\n  while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }\n  pcVar40 = pcVar40 + 1;\n  iVar8 = *piVar22;\nLAB_00080938:\n  iVar37 = iVar37 + 1;\n  piVar12 = piVar12 + 5;\n  if (iVar8 <= iVar37) goto code_r0x00080948;\n  goto LAB_000808d4;\nLAB_00080b5c:\n  psVar26 = psVar26 + 1;\n  if (psVar27 == psVar26) goto LAB_00080938;\n  if (iVar13 == *psVar26) goto LAB_00080b70;\n  goto LAB_00080b5c;\ncode_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\nLAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  puVar30 = puVar32;\n  pcVar31 = pcVar44;\n  (*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  *(short *)((int)puVar32 + 0x16) = sVar17;\n  if (iVar8 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pcVar31 = (char *)0x0;\n  param_1[5] = 0;\n  puVar30 = puVar49;\n  iVar8 = FUN_0007dec0(param_1,iVar36);\n  if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }\n  if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar20 = cVar20 + '\x01';\n  if (puVar49 == (uint *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar8 = 0;\n  goto LAB_00080a6c;\n}" primitive_type (function_declarator "FUN_00080720(int *param_1,undefined4 param_2,uint *param_3,char *param_4)" identifier (parameter_list "(int *param_1,undefined4 param_2,uint *param_3,char *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  code *pcVar9;\n  code *pcVar10;\n  byte bVar18;\n  char cVar19;\n  char cVar20;\n  code *pcVar11;\n  undefined2 uVar16;\n  short sVar17;\n  int *piVar12;\n  int iVar13;\n  uint uVar14;\n  ushort *puVar15;\n  int iVar21;\n  byte bVar24;\n  int *piVar22;\n  uint uVar23;\n  short sVar28;\n  undefined4 uVar25;\n  short *psVar26;\n  short *psVar27;\n  uint uVar29;\n  uint *puVar30;\n  char *pcVar31;\n  uint *puVar32;\n  uint uVar33;\n  ushort *puVar34;\n  int iVar35;\n  int iVar36;\n  int iVar37;\n  uint uVar38;\n  char *pcVar39;\n  char *pcVar40;\n  uint uVar41;\n  int iVar42;\n  char *pcVar43;\n  char *pcVar44;\n  undefined4 *puVar45;\n  ushort *puVar46;\n  char *unaff_s5;\n  undefined4 *unaff_s6;\n  int iVar47;\n  undefined *puVar48;\n  uint *puVar49;\n  int iStack_364;\n  undefined4 *puStack_360;\n  undefined4 uStack_35c;\n  int iStack_358;\n  ushort *puStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_348;\n  undefined4 uStack_344;\n  uint uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  ushort auStack_310 [4];\n  uint auStack_308 [12];\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  undefined4 uStack_2a0;\n  undefined4 *puStack_29c;\n  undefined1 uStack_298;\n  undefined4 uStack_294;\n  uint uStack_28c;\n  int iStack_104;\n  uint *puStack_100;\n  int iStack_fc;\n  char *pcStack_f8;\n  char *pcStack_f4;\n  int *piStack_f0;\n  char *pcStack_ec;\n  undefined4 *puStack_e8;\n  uint *puStack_e4;\n  uint *puStack_e0;\n  code *pcStack_dc;\n  uint *puStack_d0;\n  char *pcStack_cc;\n  short sStack_b2;\n  undefined2 local_7a;\n  uint uStack_78;\n  undefined2 *local_74;\n  short *local_70;\n  undefined4 *local_6c;\n  undefined4 local_64;\n  undefined2 local_48;\n  undefined2 local_46;\n  undefined2 local_44;\n  undefined1 local_42;\n  byte local_41;\n  short local_30;\n  undefined2 local_2e;\n  int *local_2c;\n  \n  puVar48 = PTR___stack_chk_guard_0015ba2c;\n  puVar32 = (uint *)param_1[3];\n  iVar21 = param_1[1];\n  pcVar39 = (char *)*param_1;\n  local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;\n  local_7a = 0xffff;\n  iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  puVar6 = *(undefined4 **)(iVar36 + 0x10);\n  puVar49 = *(uint **)(iVar36 + 0x44);\n  puVar30 = param_3;\n  pcVar31 = param_4;\n  if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }\n  if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }\n  if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }\n  puVar5 = PTR_LAB_0015b6d8;\n  puVar4 = PTR_LAB_0015b6c0;\n  cVar20 = '\0';\n  pcVar40 = pcVar39;\n  pcVar44 = pcVar43;\n  if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }\n  pcVar43 = unaff_s5;\n  iVar8 = 0;\nLAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }\n  pcVar9 = FUN_000810a8;\n  piVar22 = local_2c;\n  puVar48 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar48 + 0xda984);\n  puStack_e8 = unaff_s6;\n  puStack_e0 = puVar49;\n  piStack_f0 = param_1;\n  pcStack_dc = pcVar9;\n  puStack_e4 = puVar7;\n  pcStack_ec = pcVar43;\n  pcStack_f4 = pcVar44;\n  pcStack_f8 = pcVar40;\n  iStack_fc = iVar36;\n  puStack_100 = puVar32;\n  puVar6 = (undefined4 *)piVar22[1];\n  puVar32 = (uint *)piVar22[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  uVar29 = puVar6[5] + puVar6[3] * 0x30;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  uVar23 = puVar6[5];\n  iStack_104 = *piVar12;\n  pcStack_cc = pcVar31;\n  puStack_d0 = puVar30;\n  puVar30 = (uint *)(uint)(uVar23 < uVar29);\n  iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  iVar36 = *(int *)(iVar21 + 0x28);\n  if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }\n  iVar21 = iStack_104;\n  (**(code **)(puVar48 + 0xda968))();\n  iVar36 = *(int *)(iVar21 + 0x18);\n  iVar21 = FUN_0007bd64(0);\n  if (iVar21 != 0) {\n    return 0;\n  }\n  *(undefined1 *)puVar30 = 0x9e;\n  puVar30[7] = *(uint *)(iVar36 + 8);\n  uVar23 = *(uint *)(iVar36 + 0xc);\n  puVar30[0xc] = 0;\n  puVar30[8] = uVar23;\n  return 1;\ncode_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;\n  puVar32[8] = 0;\n  puVar32[10] = 0x10000;\n  *(char **)puVar32[0xc] = pcVar44;\n  *(short *)((int)puVar32 + 0x12) = sStack_b2;\n  if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }\n  if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }\n  *(undefined2 *)((int)puVar32 + 0x16) = 0x2b;\n  uVar16 = (*pcVar11)(puVar7,0x2b);\n  *(undefined2 *)(puVar32 + 5) = uVar16;\n  puVar32[9] = 0x4000;\n  *puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;\n  puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  if (iVar8 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\n  while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }\n  pcVar40 = pcVar40 + 1;\n  iVar8 = *piVar22;\nLAB_00080938:\n  iVar37 = iVar37 + 1;\n  piVar12 = piVar12 + 5;\n  if (iVar8 <= iVar37) goto code_r0x00080948;\n  goto LAB_000808d4;\nLAB_00080b5c:\n  psVar26 = psVar26 + 1;\n  if (psVar27 == psVar26) goto LAB_00080938;\n  if (iVar13 == *psVar26) goto LAB_00080b70;\n  goto LAB_00080b5c;\ncode_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\nLAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  puVar30 = puVar32;\n  pcVar31 = pcVar44;\n  (*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  *(short *)((int)puVar32 + 0x16) = sVar17;\n  if (iVar8 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pcVar31 = (char *)0x0;\n  param_1[5] = 0;\n  puVar30 = puVar49;\n  iVar8 = FUN_0007dec0(param_1,iVar36);\n  if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }\n  if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar20 = cVar20 + '\x01';\n  if (puVar49 == (uint *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar8 = 0;\n  goto LAB_00080a6c;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "char cVar19;" primitive_type identifier ;) (declaration "char cVar20;" primitive_type identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined2 uVar16;" type_identifier identifier ;) (declaration "short sVar17;" (sized_type_specifier "short" short) identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "ushort *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "short sVar28;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "short *psVar26;" (sized_type_specifier "short" short) (pointer_declarator "*psVar26" * identifier) ;) (declaration "short *psVar27;" (sized_type_specifier "short" short) (pointer_declarator "*psVar27" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uint *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "char *pcVar31;" primitive_type (pointer_declarator "*pcVar31" * identifier) ;) (declaration "uint *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "ushort *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "int iVar37;" primitive_type identifier ;) (declaration "uint uVar38;" type_identifier identifier ;) (declaration "char *pcVar39;" primitive_type (pointer_declarator "*pcVar39" * identifier) ;) (declaration "char *pcVar40;" primitive_type (pointer_declarator "*pcVar40" * identifier) ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "int iVar42;" primitive_type identifier ;) (declaration "char *pcVar43;" primitive_type (pointer_declarator "*pcVar43" * identifier) ;) (declaration "char *pcVar44;" primitive_type (pointer_declarator "*pcVar44" * identifier) ;) (declaration "undefined4 *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "ushort *puVar46;" type_identifier (pointer_declarator "*puVar46" * identifier) ;) (declaration "char *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined4 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar47;" primitive_type identifier ;) (declaration "undefined *puVar48;" type_identifier (pointer_declarator "*puVar48" * identifier) ;) (declaration "uint *puVar49;" type_identifier (pointer_declarator "*puVar49" * identifier) ;) (declaration "int iStack_364;" primitive_type identifier ;) (declaration "undefined4 *puStack_360;" type_identifier (pointer_declarator "*puStack_360" * identifier) ;) (declaration "undefined4 uStack_35c;" type_identifier identifier ;) (declaration "int iStack_358;" primitive_type identifier ;) (declaration "ushort *puStack_354;" type_identifier (pointer_declarator "*puStack_354" * identifier) ;) (declaration "int iStack_350;" primitive_type identifier ;) (declaration "int iStack_34c;" primitive_type identifier ;) (declaration "uint uStack_348;" type_identifier identifier ;) (declaration "undefined4 uStack_344;" type_identifier identifier ;) (declaration "uint uStack_340;" type_identifier identifier ;) (declaration "undefined4 uStack_33c;" type_identifier identifier ;) (declaration "undefined4 uStack_338;" type_identifier identifier ;) (declaration "undefined4 uStack_334;" type_identifier identifier ;) (declaration "undefined4 uStack_330;" type_identifier identifier ;) (declaration "undefined4 uStack_32c;" type_identifier identifier ;) (declaration "undefined4 uStack_328;" type_identifier identifier ;) (declaration "undefined4 uStack_324;" type_identifier identifier ;) (declaration "undefined4 uStack_320;" type_identifier identifier ;) (declaration "undefined4 uStack_31c;" type_identifier identifier ;) (declaration "undefined4 uStack_318;" type_identifier identifier ;) (declaration "undefined4 uStack_314;" type_identifier identifier ;) (declaration "ushort auStack_310 [4];" type_identifier (array_declarator "auStack_310 [4]" identifier [ number_literal ]) ;) (declaration "uint auStack_308 [12];" type_identifier (array_declarator "auStack_308 [12]" identifier [ number_literal ]) ;) (declaration "ushort auStack_2d8 [4];" type_identifier (array_declarator "auStack_2d8 [4]" identifier [ number_literal ]) ;) (declaration "uint auStack_2d0 [2];" type_identifier (array_declarator "auStack_2d0 [2]" identifier [ number_literal ]) ;) (declaration "ushort auStack_2c8 [20];" type_identifier (array_declarator "auStack_2c8 [20]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_2a0;" type_identifier identifier ;) (declaration "undefined4 *puStack_29c;" type_identifier (pointer_declarator "*puStack_29c" * identifier) ;) (declaration "undefined1 uStack_298;" type_identifier identifier ;) (declaration "undefined4 uStack_294;" type_identifier identifier ;) (declaration "uint uStack_28c;" type_identifier identifier ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "uint *puStack_100;" type_identifier (pointer_declarator "*puStack_100" * identifier) ;) (declaration "int iStack_fc;" primitive_type identifier ;) (declaration "char *pcStack_f8;" primitive_type (pointer_declarator "*pcStack_f8" * identifier) ;) (declaration "char *pcStack_f4;" primitive_type (pointer_declarator "*pcStack_f4" * identifier) ;) (declaration "int *piStack_f0;" primitive_type (pointer_declarator "*piStack_f0" * identifier) ;) (declaration "char *pcStack_ec;" primitive_type (pointer_declarator "*pcStack_ec" * identifier) ;) (declaration "undefined4 *puStack_e8;" type_identifier (pointer_declarator "*puStack_e8" * identifier) ;) (declaration "uint *puStack_e4;" type_identifier (pointer_declarator "*puStack_e4" * identifier) ;) (declaration "uint *puStack_e0;" type_identifier (pointer_declarator "*puStack_e0" * identifier) ;) (declaration "code *pcStack_dc;" type_identifier (pointer_declarator "*pcStack_dc" * identifier) ;) (declaration "uint *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "char *pcStack_cc;" primitive_type (pointer_declarator "*pcStack_cc" * identifier) ;) (declaration "short sStack_b2;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined2 local_7a;" type_identifier identifier ;) (declaration "uint uStack_78;" type_identifier identifier ;) (declaration "undefined2 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "short *local_70;" (sized_type_specifier "short" short) (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined4 *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined2 local_48;" type_identifier identifier ;) (declaration "undefined2 local_46;" type_identifier identifier ;) (declaration "undefined2 local_44;" type_identifier identifier ;) (declaration "undefined1 local_42;" type_identifier identifier ;) (declaration "byte local_41;" type_identifier identifier ;) (declaration "short local_30;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined2 local_2e;" type_identifier identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar48 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar48 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "puVar32 = (uint *)param_1[3];" (assignment_expression "puVar32 = (uint *)param_1[3]" identifier = (cast_expression "(uint *)param_1[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar21 = param_1[1];" (assignment_expression "iVar21 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar39 = (char *)*param_1;" (assignment_expression "pcVar39 = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int **)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int **)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int **)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_7a = 0xffff;" (assignment_expression "local_7a = 0xffff" identifier = number_literal) ;) (expression_statement "iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;" (assignment_expression "iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" identifier = (binary_expression "*(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "*(int *)(pcVar39 + 4) + 8" (pointer_expression "*(int *)(pcVar39 + 4)" * (cast_expression "(int *)(pcVar39 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 4)" ( (binary_expression "pcVar39 + 4" identifier + number_literal) )))) + number_literal) + (binary_expression "(uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "(uint)*(byte *)(puVar32 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(puVar32 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "puVar6 = *(undefined4 **)(iVar36 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(iVar36 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar36 + 0x10)" * (cast_expression "(undefined4 **)(iVar36 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + 0x10)" ( (binary_expression "iVar36 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar49 = *(uint **)(iVar36 + 0x44);" (assignment_expression "puVar49 = *(uint **)(iVar36 + 0x44)" identifier = (pointer_expression "*(uint **)(iVar36 + 0x44)" * (cast_expression "(uint **)(iVar36 + 0x44)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + 0x44)" ( (binary_expression "iVar36 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = param_3;" (assignment_expression "puVar30 = param_3" identifier = identifier) ;) (expression_statement "pcVar31 = param_4;" (assignment_expression "pcVar31 = param_4" identifier = identifier) ;) (if_statement "if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }" if (parenthesized_expression "(puVar49 == (uint *)0x0)" ( (binary_expression "puVar49 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }" { (if_statement "if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }" if (parenthesized_expression "((puVar6[9] & 0x20) == 0)" ( (binary_expression "(puVar6[9] & 0x20) == 0" (parenthesized_expression "(puVar6[9] & 0x20)" ( (binary_expression "puVar6[9] & 0x20" (subscript_expression "puVar6[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }" { (expression_statement "puVar49 = &uStack_78;" (assignment_expression "puVar49 = &uStack_78" identifier = (pointer_expression "&uStack_78" & identifier)) ;) (expression_statement "puVar30 = (uint *)0x48;" (assignment_expression "puVar30 = (uint *)0x48" identifier = (cast_expression "(uint *)0x48" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_memset_0015b9b4)(puVar49,0);" (call_expression "(*(code *)PTR_memset_0015b9b4)(puVar49,0)" (parenthesized_expression "(*(code *)PTR_memset_0015b9b4)" ( (pointer_expression "*(code *)PTR_memset_0015b9b4" * (cast_expression "(code *)PTR_memset_0015b9b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar49,0)" ( identifier , number_literal ))) ;) (expression_statement "local_46 = 1;" (assignment_expression "local_46 = 1" identifier = number_literal) ;) (expression_statement "local_44 = 1;" (assignment_expression "local_44 = 1" identifier = number_literal) ;) (expression_statement "local_6c = puVar6;" (assignment_expression "local_6c = puVar6" identifier = identifier) ;) (expression_statement "local_42 = 5;" (assignment_expression "local_42 = 5" identifier = number_literal) ;) (expression_statement "local_2e = 0;" (assignment_expression "local_2e = 0" identifier = number_literal) ;) (expression_statement "local_41 = local_41 & 0x3f | 0xc0;" (assignment_expression "local_41 = local_41 & 0x3f | 0xc0" identifier = (binary_expression "local_41 & 0x3f | 0xc0" (binary_expression "local_41 & 0x3f" identifier & number_literal) | number_literal)) ;) (expression_statement "local_48 = *(undefined2 *)((int)puVar6 + 0x2e);" (assignment_expression "local_48 = *(undefined2 *)((int)puVar6 + 0x2e)" identifier = (pointer_expression "*(undefined2 *)((int)puVar6 + 0x2e)" * (cast_expression "(undefined2 *)((int)puVar6 + 0x2e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_74 = &local_7a;" (assignment_expression "local_74 = &local_7a" identifier = (pointer_expression "&local_7a" & identifier)) ;) (expression_statement "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);" (assignment_expression "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb)" identifier = (cast_expression "(char *)(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar6 + 0xb)" * (cast_expression "(short *)(puVar6 + 0xb)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xb)" ( (binary_expression "puVar6 + 0xb" identifier + number_literal) ))))))) ;) (expression_statement "local_70 = &local_30;" (assignment_expression "local_70 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "local_30 = *(short *)(puVar6 + 0xb);" (assignment_expression "local_30 = *(short *)(puVar6 + 0xb)" identifier = (pointer_expression "*(short *)(puVar6 + 0xb)" * (cast_expression "(short *)(puVar6 + 0xb)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xb)" ( (binary_expression "puVar6 + 0xb" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }" if (parenthesized_expression "(-1 < *(char *)(iVar36 + 0x25))" ( (binary_expression "-1 < *(char *)(iVar36 + 0x25)" number_literal < (pointer_expression "*(char *)(iVar36 + 0x25)" * (cast_expression "(char *)(iVar36 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x25)" ( (binary_expression "iVar36 + 0x25" identifier + number_literal) ))))) )) (compound_statement "{\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }" { (expression_statement "local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);" (assignment_expression "local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(iVar36 + 0x10) + 8)" * (cast_expression "(undefined4 *)(*(int *)(iVar36 + 0x10) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar36 + 0x10) + 8)" ( (binary_expression "*(int *)(iVar36 + 0x10) + 8" (pointer_expression "*(int *)(iVar36 + 0x10)" * (cast_expression "(int *)(iVar36 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x10)" ( (binary_expression "iVar36 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) })) }) (else_clause "else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }" else (compound_statement "{\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }" { (expression_statement "puVar49 = (uint *)puVar6[2];" (assignment_expression "puVar49 = (uint *)puVar6[2]" identifier = (cast_expression "(uint *)puVar6[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);" (assignment_expression "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb)" identifier = (cast_expression "(char *)(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar6 + 0xb)" * (cast_expression "(short *)(puVar6 + 0xb)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xb)" ( (binary_expression "puVar6 + 0xb" identifier + number_literal) ))))))) ;) }))) }) (else_clause "else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }" else (compound_statement "{\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }" { (expression_statement "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);" (assignment_expression "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb)" identifier = (cast_expression "(char *)(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(short *)(puVar6 + 0xb)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(puVar6 + 0xb)" * (cast_expression "(short *)(puVar6 + 0xb)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xb)" ( (binary_expression "puVar6 + 0xb" identifier + number_literal) ))))))) ;) }))) (if_statement "if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }" if (parenthesized_expression "((int)pcVar43 < 0xb)" ( (binary_expression "(int)pcVar43 < 0xb" (cast_expression "(int)pcVar43" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }" { (expression_statement "iVar8 = param_1[4];" (assignment_expression "iVar8 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "puVar7 = (uint *)0x0;" (assignment_expression "puVar7 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }" else (compound_statement "{\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }" { (expression_statement "puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);" (assignment_expression "puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + 0x5c64)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + 0x5c64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + 0x5c64)" ( (binary_expression "PTR_LAB_0015b6c0 + 0x5c64" identifier + number_literal) )))) )) (argument_list "(pcVar43)" ( identifier ))))) ;) (expression_statement "iVar8 = param_1[4];" (assignment_expression "iVar8 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) }))) (if_statement "if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }" if (parenthesized_expression "((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0))" ( (binary_expression "(((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)" (parenthesized_expression "(((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0))" ( (binary_expression "((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)" (parenthesized_expression "((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25)))))" ( (binary_expression "(((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))" (parenthesized_expression "(((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0))" ( (binary_expression "((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)" (parenthesized_expression "((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0))" ( (binary_expression "(iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(pcVar39 + 0x2c) & 0x20)" ( (binary_expression "*(ushort *)(pcVar39 + 0x2c) & 0x20" (pointer_expression "*(ushort *)(pcVar39 + 0x2c)" * (cast_expression "(ushort *)(pcVar39 + 0x2c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x2c)" ( (binary_expression "pcVar39 + 0x2c" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)" ( (binary_expression "(*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0" (parenthesized_expression "(*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000)" ( (binary_expression "*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000" (pointer_expression "*(uint *)(**(int **)pcVar39 + 0x24)" * (cast_expression "(uint *)(**(int **)pcVar39 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)pcVar39 + 0x24)" ( (binary_expression "**(int **)pcVar39 + 0x24" (pointer_expression "**(int **)pcVar39" * (pointer_expression "*(int **)pcVar39" * (cast_expression "(int **)pcVar39" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))" ( (parenthesized_expression "(*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25)))" ( (binary_expression "*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))" (binary_expression "*(int *)(iVar36 + 0x44) == 0" (pointer_expression "*(int *)(iVar36 + 0x44)" * (cast_expression "(int *)(iVar36 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x44)" ( (binary_expression "iVar36 + 0x44" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(-1 < *(char *)(iVar36 + 0x25))" ( (binary_expression "-1 < *(char *)(iVar36 + 0x25)" number_literal < (pointer_expression "*(char *)(iVar36 + 0x25)" * (cast_expression "(char *)(iVar36 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x25)" ( (binary_expression "iVar36 + 0x25" identifier + number_literal) ))))) ))) )) ))) )) && (parenthesized_expression "((puVar6[9] & 0x20) == 0)" ( (binary_expression "(puVar6[9] & 0x20) == 0" (parenthesized_expression "(puVar6[9] & 0x20)" ( (binary_expression "puVar6[9] & 0x20" (subscript_expression "puVar6[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)" ( (binary_expression "(*(uint *)(iVar36 + 0x24) & 0x140000) == 0" (parenthesized_expression "(*(uint *)(iVar36 + 0x24) & 0x140000)" ( (binary_expression "*(uint *)(iVar36 + 0x24) & 0x140000" (pointer_expression "*(uint *)(iVar36 + 0x24)" * (cast_expression "(uint *)(iVar36 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x24)" ( (binary_expression "iVar36 + 0x24" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }" { (expression_statement "sStack_b2 = (short)puVar7 + (short)pcVar43;" (assignment_expression "sStack_b2 = (short)puVar7 + (short)pcVar43" identifier = (binary_expression "(short)puVar7 + (short)pcVar43" (cast_expression "(short)puVar7" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + (cast_expression "(short)pcVar43" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier))) ;) (expression_statement "pcVar44 = *(char **)(iVar21 + 0x14);" (assignment_expression "pcVar44 = *(char **)(iVar21 + 0x14)" identifier = (pointer_expression "*(char **)(iVar21 + 0x14)" * (cast_expression "(char **)(iVar21 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5530)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5530)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5530" identifier + number_literal) )))) ;) (expression_statement "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6d8 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + 0x358)" ( (binary_expression "PTR_LAB_0015b6d8 + 0x358" identifier + number_literal) )))) ;) (expression_statement "pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;" (assignment_expression "pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30" identifier = (binary_expression "pcVar44 + *(int *)(iVar21 + 0xc) * 0x30" identifier + (binary_expression "*(int *)(iVar21 + 0xc) * 0x30" (pointer_expression "*(int *)(iVar21 + 0xc)" * (cast_expression "(int *)(iVar21 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0xc)" ( (binary_expression "iVar21 + 0xc" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x51d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x51d8)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x51d8" identifier + number_literal) )))) ;) (expression_statement "unaff_s5 = pcVar44;" (assignment_expression "unaff_s5 = pcVar44" identifier = identifier) ;) (labeled_statement "LAB_00080e28:\n    pcVar43 = pcVar44;" statement_identifier : (expression_statement "pcVar43 = pcVar44;" (assignment_expression "pcVar43 = pcVar44" identifier = identifier) ;)) (expression_statement "pcVar44 = unaff_s5;" (assignment_expression "pcVar44 = unaff_s5" identifier = identifier) ;) (expression_statement "unaff_s6 = puVar6;" (assignment_expression "unaff_s6 = puVar6" identifier = identifier) ;) (if_statement "if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }" if (parenthesized_expression "(unaff_s5 < pcVar40)" ( (binary_expression "unaff_s5 < pcVar40" identifier < identifier) )) (compound_statement "{\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }" { (do_statement "do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );" do (compound_statement "{\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      }" { (expression_statement "puVar30 = (uint *)puVar32[2];" (assignment_expression "puVar30 = (uint *)puVar32[2]" identifier = (cast_expression "(uint *)puVar32[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar43 = pcVar44 + 0x30;" (assignment_expression "pcVar43 = pcVar44 + 0x30" identifier = (binary_expression "pcVar44 + 0x30" identifier + number_literal)) ;) (expression_statement "unaff_s5 = pcVar43;" (assignment_expression "unaff_s5 = pcVar43" identifier = identifier) ;) (if_statement "if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }" if (parenthesized_expression "((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0)" ( (binary_expression "(*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0" (binary_expression "(*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0" (parenthesized_expression "(*(uint *)(pcVar44 + 0x20) & (uint)puVar30)" ( (binary_expression "*(uint *)(pcVar44 + 0x20) & (uint)puVar30" (pointer_expression "*(uint *)(pcVar44 + 0x20)" * (cast_expression "(uint *)(pcVar44 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar44 + 0x20)" ( (binary_expression "pcVar44 + 0x20" identifier + number_literal) )))) & (cast_expression "(uint)puVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) && (binary_expression "(*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0" (parenthesized_expression "(*(uint *)(pcVar44 + 0x24) & puVar32[3])" ( (binary_expression "*(uint *)(pcVar44 + 0x24) & puVar32[3]" (pointer_expression "*(uint *)(pcVar44 + 0x24)" * (cast_expression "(uint *)(pcVar44 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar44 + 0x24)" ( (binary_expression "pcVar44 + 0x24" identifier + number_literal) )))) & (subscript_expression "puVar32[3]" identifier [ number_literal ])) )) == number_literal)) )) (compound_statement "{\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }" { (expression_statement "pcVar31 = (char *)0x0;" (assignment_expression "pcVar31 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar30 = (uint *)0x0;" (assignment_expression "puVar30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = (*pcVar10)(pcVar44,iVar36);" (assignment_expression "iVar8 = (*pcVar10)(pcVar44,iVar36)" identifier = (call_expression "(*pcVar10)(pcVar44,iVar36)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pcVar44,iVar36)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) goto code_r0x00080e78;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00080e78;" goto statement_identifier ;)) })) (expression_statement "pcVar44 = pcVar43;" (assignment_expression "pcVar44 = pcVar43" identifier = identifier) ;) (if_statement "if (pcVar40 <= pcVar43) break;" if (parenthesized_expression "(pcVar40 <= pcVar43)" ( (binary_expression "pcVar40 <= pcVar43" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (expression_statement "puVar5 = PTR_LAB_0015b6d8;" (assignment_expression "puVar5 = PTR_LAB_0015b6d8" identifier = identifier) ;) (expression_statement "puVar4 = PTR_LAB_0015b6c0;" (assignment_expression "puVar4 = PTR_LAB_0015b6c0" identifier = identifier) ;) (expression_statement "cVar20 = '\0';" (assignment_expression "cVar20 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar40 = pcVar39;" (assignment_expression "pcVar40 = pcVar39" identifier = identifier) ;) (expression_statement "pcVar44 = pcVar43;" (assignment_expression "pcVar44 = pcVar43" identifier = identifier) ;) (if_statement "if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }" if (parenthesized_expression "(puVar49 != (uint *)0x0)" ( (binary_expression "puVar49 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }" { (expression_statement "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x51d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x51d8)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x51d8" identifier + number_literal) )))) ;) (expression_statement "pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x2b38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x2b38)" ( (binary_expression "PTR_LAB_0015b714 + -0x2b38" identifier + number_literal) )))) ;) (expression_statement "pcVar43 = unaff_s5;" (assignment_expression "pcVar43 = unaff_s5" identifier = identifier) ;) (labeled_statement "LAB_0008081c:\n    puVar30 = (uint *)puVar49[9];" statement_identifier : (expression_statement "puVar30 = (uint *)puVar49[9];" (assignment_expression "puVar30 = (uint *)puVar49[9]" identifier = (cast_expression "(uint *)puVar49[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar49[9]" identifier [ number_literal ]))) ;)) (if_statement "if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }" if (parenthesized_expression "(((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe)))" ( (binary_expression "((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))" (parenthesized_expression "((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0))" ( (binary_expression "(puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)" (parenthesized_expression "(puVar30 == (uint *)0x0)" ( (binary_expression "puVar30 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)" ( (comma_expression "iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0" (assignment_expression "iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21)" identifier = (call_expression "FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21)" identifier (argument_list "(*(undefined4 *)(iVar36 + 0x28),iVar21)" ( (pointer_expression "*(undefined4 *)(iVar36 + 0x28)" * (cast_expression "(undefined4 *)(iVar36 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x28)" ( (binary_expression "iVar36 + 0x28" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(-1 < *(char *)(puVar49 + 0xe))" ( (binary_expression "-1 < *(char *)(puVar49 + 0xe)" number_literal < (pointer_expression "*(char *)(puVar49 + 0xe)" * (cast_expression "(char *)(puVar49 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0xe)" ( (binary_expression "puVar49 + 0xe" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }" { (expression_statement "sVar17 = *(short *)puVar49[2];" (assignment_expression "sVar17 = *(short *)puVar49[2]" identifier = (pointer_expression "*(short *)puVar49[2]" * (cast_expression "(short *)puVar49[2]" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar49[2]" identifier [ number_literal ])))) ;) (expression_statement "pcVar44 = (char *)(int)sVar17;" (assignment_expression "pcVar44 = (char *)(int)sVar17" identifier = (cast_expression "(char *)(int)sVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar32[6] = 0;" (assignment_expression "puVar32[6] = 0" (subscript_expression "puVar32[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar32 + 7) = 0;" (assignment_expression "*(undefined2 *)(puVar32 + 7) = 0" (pointer_expression "*(undefined2 *)(puVar32 + 7)" * (cast_expression "(undefined2 *)(puVar32 + 7)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 7)" ( (binary_expression "puVar32 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar32 = (uint)param_3;" (assignment_expression "*puVar32 = (uint)param_3" (pointer_expression "*puVar32" * identifier) = (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar32[10] = 0;" (assignment_expression "puVar32[10] = 0" (subscript_expression "puVar32[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)((int)puVar32 + 0x16) = sVar17;" (assignment_expression "*(short *)((int)puVar32 + 0x16) = sVar17" (pointer_expression "*(short *)((int)puVar32 + 0x16)" * (cast_expression "(short *)((int)puVar32 + 0x16)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x16)" ( (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar32[8] = (uint)puVar49;" (assignment_expression "puVar32[8] = (uint)puVar49" (subscript_expression "puVar32[8]" identifier [ number_literal ]) = (cast_expression "(uint)puVar49" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar32[1] = (uint)param_4;" (assignment_expression "puVar32[1] = (uint)param_4" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar18 = *(byte *)((int)puVar49 + 0x37);" (assignment_expression "bVar18 = *(byte *)((int)puVar49 + 0x37)" identifier = (pointer_expression "*(byte *)((int)puVar49 + 0x37)" * (cast_expression "(byte *)((int)puVar49 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x37)" ( (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar24 = bVar18 & 0x20;" (assignment_expression "bVar24 = bVar18 & 0x20" identifier = (binary_expression "bVar18 & 0x20" identifier & number_literal)) ;) (if_statement "if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }" if (parenthesized_expression "((bVar18 & 0x20) == 0)" ( (binary_expression "(bVar18 & 0x20) == 0" (parenthesized_expression "(bVar18 & 0x20)" ( (binary_expression "bVar18 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }" { (expression_statement "piVar22 = *(int **)(*param_1 + 8);" (assignment_expression "piVar22 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }" if (parenthesized_expression "((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8))" ( (binary_expression "(piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)" (parenthesized_expression "(piVar22 != (int *)0x0)" ( (binary_expression "piVar22 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar8 = *piVar22, 0 < iVar8)" ( (comma_expression "iVar8 = *piVar22, 0 < iVar8" (assignment_expression "iVar8 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) , (binary_expression "0 < iVar8" number_literal < identifier)) ))) )) (compound_statement "{\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }" { (expression_statement "unaff_s6 = *(undefined4 **)(iVar36 + 0x28);" (assignment_expression "unaff_s6 = *(undefined4 **)(iVar36 + 0x28)" identifier = (pointer_expression "*(undefined4 **)(iVar36 + 0x28)" * (cast_expression "(undefined4 **)(iVar36 + 0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + 0x28)" ( (binary_expression "iVar36 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = piVar22 + 1;" (assignment_expression "piVar12 = piVar22 + 1" identifier = (binary_expression "piVar22 + 1" identifier + number_literal)) ;) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }" statement_identifier : (for_statement "for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }" for ( (assignment_expression "pcVar43 = (char *)*piVar12" identifier = (cast_expression "(char *)*piVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ; (binary_expression "pcVar43 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pcVar43 = *(char **)(pcVar43 + 0xc)" identifier = (pointer_expression "*(char **)(pcVar43 + 0xc)" * (cast_expression "(char **)(pcVar43 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar43 + 0xc)" ( (binary_expression "pcVar43 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }" { (while_statement "while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }" { (if_statement "if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }" if (parenthesized_expression "((*(uint *)(pcVar43 + 4) & 0x1000) == 0)" ( (binary_expression "(*(uint *)(pcVar43 + 4) & 0x1000) == 0" (parenthesized_expression "(*(uint *)(pcVar43 + 4) & 0x1000)" ( (binary_expression "*(uint *)(pcVar43 + 4) & 0x1000" (pointer_expression "*(uint *)(pcVar43 + 4)" * (cast_expression "(uint *)(pcVar43 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar43 + 4)" ( (binary_expression "pcVar43 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }" { (expression_statement "puVar7 = puVar49;" (assignment_expression "puVar7 = puVar49" identifier = identifier) ;) (if_statement "if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }" if (parenthesized_expression "((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c)))" ( (binary_expression "(*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))" (parenthesized_expression "(*pcVar43 != -0x62)" ( (binary_expression "*pcVar43 != -0x62" (pointer_expression "*pcVar43" * identifier) != number_literal) )) || (parenthesized_expression "(unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))" ( (binary_expression "unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c)" identifier != (pointer_expression "*(undefined4 **)(pcVar43 + 0x1c)" * (cast_expression "(undefined4 **)(pcVar43 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar43 + 0x1c)" ( (binary_expression "pcVar43 + 0x1c" identifier + number_literal) ))))) ))) )) (compound_statement "{\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }" { (if_statement "if (puVar49[10] == 0) goto LAB_00080938;" if (parenthesized_expression "(puVar49[10] == 0)" ( (binary_expression "puVar49[10] == 0" (subscript_expression "puVar49[10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00080938;" goto statement_identifier ;)) (expression_statement "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);" (assignment_expression "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32)" identifier = (binary_expression "(uint)*(ushort *)((int)puVar49 + 0x32)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)puVar49 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x32)" ( (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar45 = (undefined4 *)(puVar49[10] + 4);" (assignment_expression "puVar45 = (undefined4 *)(puVar49[10] + 4)" identifier = (cast_expression "(undefined4 *)(puVar49[10] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49[10] + 4)" ( (binary_expression "puVar49[10] + 4" (subscript_expression "puVar49[10]" identifier [ number_literal ]) + number_literal) )))) ;) (if_statement "if (uVar23 == 0) goto LAB_00080938;" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00080938;" goto statement_identifier ;)) (expression_statement "pcVar31 = (char *)0x0;" (assignment_expression "pcVar31 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00080ad0;" goto statement_identifier ;) })) (expression_statement "iVar13 = *(int *)(pcVar43 + 0x20);" (assignment_expression "iVar13 = *(int *)(pcVar43 + 0x20)" identifier = (pointer_expression "*(int *)(pcVar43 + 0x20)" * (cast_expression "(int *)(pcVar43 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar43 + 0x20)" ( (binary_expression "pcVar43 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 < 0) goto LAB_00080b70;" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (if_statement "if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;" if (parenthesized_expression "(*(ushort *)((int)puVar49 + 0x32) == 0)" ( (binary_expression "*(ushort *)((int)puVar49 + 0x32) == 0" (pointer_expression "*(ushort *)((int)puVar49 + 0x32)" * (cast_expression "(ushort *)((int)puVar49 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x32)" ( (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00080938;" goto statement_identifier ;)) (expression_statement "psVar26 = (short *)puVar49[1];" (assignment_expression "psVar26 = (short *)puVar49[1]" identifier = (cast_expression "(short *)puVar49[1]" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar49[1]" identifier [ number_literal ]))) ;) (if_statement "if (iVar13 == *psVar26) goto LAB_00080b70;" if (parenthesized_expression "(iVar13 == *psVar26)" ( (binary_expression "iVar13 == *psVar26" identifier == (pointer_expression "*psVar26" * identifier)) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (expression_statement "psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);" (assignment_expression "psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32)" identifier = (binary_expression "psVar26 + *(ushort *)((int)puVar49 + 0x32)" identifier + (pointer_expression "*(ushort *)((int)puVar49 + 0x32)" * (cast_expression "(ushort *)((int)puVar49 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x32)" ( (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (goto_statement "goto LAB_00080b5c;" goto statement_identifier ;) })) (if_statement "if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;" if (parenthesized_expression "((*(uint *)(pcVar43 + 4) & 0x40000) == 0)" ( (binary_expression "(*(uint *)(pcVar43 + 4) & 0x40000) == 0" (parenthesized_expression "(*(uint *)(pcVar43 + 4) & 0x40000)" ( (binary_expression "*(uint *)(pcVar43 + 4) & 0x40000" (pointer_expression "*(uint *)(pcVar43 + 4)" * (cast_expression "(uint *)(pcVar43 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar43 + 4)" ( (binary_expression "pcVar43 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);" (assignment_expression "pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4)" identifier = (pointer_expression "*(char **)(*(int *)(pcVar43 + 0x14) + 4)" * (cast_expression "(char **)(*(int *)(pcVar43 + 0x14) + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar43 + 0x14) + 4)" ( (binary_expression "*(int *)(pcVar43 + 0x14) + 4" (pointer_expression "*(int *)(pcVar43 + 0x14)" * (cast_expression "(int *)(pcVar43 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar43 + 0x14)" ( (binary_expression "pcVar43 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (pcVar43 == (char *)0x0) goto LAB_0008090c;" if (parenthesized_expression "(pcVar43 == (char *)0x0)" ( (binary_expression "pcVar43 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008090c;" goto statement_identifier ;)) })) }))) (labeled_statement "LAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);" statement_identifier : (expression_statement "pcVar9 = (code *)trap(0);" (assignment_expression "pcVar9 = (code *)trap(0)" identifier = (cast_expression "(code *)trap(0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "trap(0)" identifier (argument_list "(0)" ( number_literal ))))) ;)) (expression_statement "(*pcVar9)();" (call_expression "(*pcVar9)()" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0008095c;" goto statement_identifier ;) })) (if_statement "if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }" if (parenthesized_expression "((bVar18 & 0xc0) == 0xc0)" ( (binary_expression "(bVar18 & 0xc0) == 0xc0" (parenthesized_expression "(bVar18 & 0xc0)" ( (binary_expression "bVar18 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }" { (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar32[9] = 0x100;" (assignment_expression "puVar32[9] = 0x100" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00080c28;" goto statement_identifier ;) })) (goto_statement "goto LAB_0008096c;" goto statement_identifier ;) })) (expression_statement "unaff_s5 = pcVar43;" (assignment_expression "unaff_s5 = pcVar43" identifier = identifier) ;) (if_statement "if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }" if (parenthesized_expression "(*(int *)(iVar36 + 0x44) == 0)" ( (binary_expression "*(int *)(iVar36 + 0x44) == 0" (pointer_expression "*(int *)(iVar36 + 0x44)" * (cast_expression "(int *)(iVar36 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x44)" ( (binary_expression "iVar36 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }" { (expression_statement "puVar49 = (uint *)puVar49[5];" (assignment_expression "puVar49 = (uint *)puVar49[5]" identifier = (cast_expression "(uint *)puVar49[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar49[5]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00080bf4;" goto statement_identifier ;) })) })) (expression_statement "pcVar43 = unaff_s5;" (assignment_expression "pcVar43 = unaff_s5" identifier = identifier) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }" statement_identifier : (if_statement "if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }" if (parenthesized_expression "(local_2c == *(int **)puVar48)" ( (binary_expression "local_2c == *(int **)puVar48" identifier == (pointer_expression "*(int **)puVar48" * (cast_expression "(int **)puVar48" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) }))) (expression_statement "pcVar9 = FUN_000810a8;" (assignment_expression "pcVar9 = FUN_000810a8" identifier = identifier) ;) (expression_statement "piVar22 = local_2c;" (assignment_expression "piVar22 = local_2c" identifier = identifier) ;) (expression_statement "puVar48 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar48 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar12 = *(int **)(puVar48 + 0xda984);" (assignment_expression "piVar12 = *(int **)(puVar48 + 0xda984)" identifier = (pointer_expression "*(int **)(puVar48 + 0xda984)" * (cast_expression "(int **)(puVar48 + 0xda984)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + 0xda984)" ( (binary_expression "puVar48 + 0xda984" identifier + number_literal) ))))) ;) (expression_statement "puStack_e8 = unaff_s6;" (assignment_expression "puStack_e8 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_e0 = puVar49;" (assignment_expression "puStack_e0 = puVar49" identifier = identifier) ;) (expression_statement "piStack_f0 = param_1;" (assignment_expression "piStack_f0 = param_1" identifier = identifier) ;) (expression_statement "pcStack_dc = pcVar9;" (assignment_expression "pcStack_dc = pcVar9" identifier = identifier) ;) (expression_statement "puStack_e4 = puVar7;" (assignment_expression "puStack_e4 = puVar7" identifier = identifier) ;) (expression_statement "pcStack_ec = pcVar43;" (assignment_expression "pcStack_ec = pcVar43" identifier = identifier) ;) (expression_statement "pcStack_f4 = pcVar44;" (assignment_expression "pcStack_f4 = pcVar44" identifier = identifier) ;) (expression_statement "pcStack_f8 = pcVar40;" (assignment_expression "pcStack_f8 = pcVar40" identifier = identifier) ;) (expression_statement "iStack_fc = iVar36;" (assignment_expression "iStack_fc = iVar36" identifier = identifier) ;) (expression_statement "puStack_100 = puVar32;" (assignment_expression "puStack_100 = puVar32" identifier = identifier) ;) (expression_statement "puVar6 = (undefined4 *)piVar22[1];" (assignment_expression "puVar6 = (undefined4 *)piVar22[1]" identifier = (cast_expression "(undefined4 *)piVar22[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar32 = (uint *)piVar22[3];" (assignment_expression "puVar32 = (uint *)piVar22[3]" identifier = (cast_expression "(uint *)piVar22[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[3]" identifier [ number_literal ]))) ;) (expression_statement "uStack_348 = 0;" (assignment_expression "uStack_348 = 0" identifier = number_literal) ;) (expression_statement "uStack_344 = 0;" (assignment_expression "uStack_344 = 0" identifier = number_literal) ;) (expression_statement "uStack_340 = 0;" (assignment_expression "uStack_340 = 0" identifier = number_literal) ;) (expression_statement "uStack_33c = 0;" (assignment_expression "uStack_33c = 0" identifier = number_literal) ;) (expression_statement "uStack_338 = 0;" (assignment_expression "uStack_338 = 0" identifier = number_literal) ;) (expression_statement "uStack_334 = 0;" (assignment_expression "uStack_334 = 0" identifier = number_literal) ;) (expression_statement "uStack_330 = 0;" (assignment_expression "uStack_330 = 0" identifier = number_literal) ;) (expression_statement "uVar29 = puVar6[5] + puVar6[3] * 0x30;" (assignment_expression "uVar29 = puVar6[5] + puVar6[3] * 0x30" identifier = (binary_expression "puVar6[5] + puVar6[3] * 0x30" (subscript_expression "puVar6[5]" identifier [ number_literal ]) + (binary_expression "puVar6[3] * 0x30" (subscript_expression "puVar6[3]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "uStack_32c = 0;" (assignment_expression "uStack_32c = 0" identifier = number_literal) ;) (expression_statement "uStack_328 = 0;" (assignment_expression "uStack_328 = 0" identifier = number_literal) ;) (expression_statement "uStack_324 = 0;" (assignment_expression "uStack_324 = 0" identifier = number_literal) ;) (expression_statement "uStack_320 = 0;" (assignment_expression "uStack_320 = 0" identifier = number_literal) ;) (expression_statement "uStack_31c = 0;" (assignment_expression "uStack_31c = 0" identifier = number_literal) ;) (expression_statement "uStack_318 = 0;" (assignment_expression "uStack_318 = 0" identifier = number_literal) ;) (expression_statement "uStack_314 = 0;" (assignment_expression "uStack_314 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = puVar6[5];" (assignment_expression "uVar23 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "iStack_104 = *piVar12;" (assignment_expression "iStack_104 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcStack_cc = pcVar31;" (assignment_expression "pcStack_cc = pcVar31" identifier = identifier) ;) (expression_statement "puStack_d0 = puVar30;" (assignment_expression "puStack_d0 = puVar30" identifier = identifier) ;) (expression_statement "puVar30 = (uint *)(uint)(uVar23 < uVar29);" (assignment_expression "puVar30 = (uint *)(uint)(uVar23 < uVar29)" identifier = (cast_expression "(uint *)(uint)(uVar23 < uVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar23 < uVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar23 < uVar29)" ( (binary_expression "uVar23 < uVar29" identifier < identifier) ))))) ;) (expression_statement "iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;" (assignment_expression "iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" identifier = (binary_expression "*(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "*(int *)(*piVar22 + 4) + 8" (pointer_expression "*(int *)(*piVar22 + 4)" * (cast_expression "(int *)(*piVar22 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + 4)" ( (binary_expression "*piVar22 + 4" (pointer_expression "*piVar22" * identifier) + number_literal) )))) + number_literal) + (binary_expression "(uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "(uint)*(byte *)(puVar32 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(puVar32 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iVar36 = *(int *)(iVar21 + 0x28);" (assignment_expression "iVar36 = *(int *)(iVar21 + 0x28)" identifier = (pointer_expression "*(int *)(iVar21 + 0x28)" * (cast_expression "(int *)(iVar21 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x28)" ( (binary_expression "iVar21 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }" if (parenthesized_expression "(puVar30 == (uint *)0x0)" ( (binary_expression "puVar30 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00081208:\n    iVar47 = 0;\n  }" { (labeled_statement "LAB_00081208:\n    iVar47 = 0;" statement_identifier : (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }" else (compound_statement "{\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }" { (expression_statement "iVar8 = *(int *)(puVar48 + 0xda5b4);" (assignment_expression "iVar8 = *(int *)(puVar48 + 0xda5b4)" identifier = (pointer_expression "*(int *)(puVar48 + 0xda5b4)" * (cast_expression "(int *)(puVar48 + 0xda5b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + 0xda5b4)" ( (binary_expression "puVar48 + 0xda5b4" identifier + number_literal) ))))) ;) (expression_statement "iVar37 = *(int *)(puVar48 + 0xda630);" (assignment_expression "iVar37 = *(int *)(puVar48 + 0xda630)" identifier = (pointer_expression "*(int *)(puVar48 + 0xda630)" * (cast_expression "(int *)(puVar48 + 0xda630)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + 0xda630)" ( (binary_expression "puVar48 + 0xda630" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(puVar48 + 0xda66c);" (assignment_expression "iVar13 = *(int *)(puVar48 + 0xda66c)" identifier = (pointer_expression "*(int *)(puVar48 + 0xda66c)" * (cast_expression "(int *)(puVar48 + 0xda66c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + 0xda66c)" ( (binary_expression "puVar48 + 0xda66c" identifier + number_literal) ))))) ;) (do_statement "do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);" do (compound_statement "{\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    }" { (while_statement "while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }" while (parenthesized_expression "(((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0)))" ( (parenthesized_expression "((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))" ( (binary_expression "(*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0)" (binary_expression "(*(ushort *)(uVar23 + 0xc) & 0x200) == 0" (parenthesized_expression "(*(ushort *)(uVar23 + 0xc) & 0x200)" ( (binary_expression "*(ushort *)(uVar23 + 0xc) & 0x200" (pointer_expression "*(ushort *)(uVar23 + 0xc)" * (cast_expression "(ushort *)(uVar23 + 0xc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar23 + 0xc)" ( (binary_expression "uVar23 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "(puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0)" ( (comma_expression "puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0" (assignment_expression "puVar30 = *(uint **)(uVar23 + 0x1c)" identifier = (pointer_expression "*(uint **)(uVar23 + 0x1c)" * (cast_expression "(uint **)(uVar23 + 0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar23 + 0x1c)" ( (binary_expression "uVar23 + 0x1c" identifier + number_literal) ))))) , (binary_expression "(puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0" (binary_expression "(puVar30[0x66] & puVar32[2]) == 0" (parenthesized_expression "(puVar30[0x66] & puVar32[2])" ( (binary_expression "puVar30[0x66] & puVar32[2]" (subscript_expression "puVar30[0x66]" identifier [ number_literal ]) & (subscript_expression "puVar32[2]" identifier [ number_literal ])) )) == number_literal) && (binary_expression "(puVar30[0x67] & puVar32[3]) == 0" (parenthesized_expression "(puVar30[0x67] & puVar32[3])" ( (binary_expression "puVar30[0x67] & puVar32[3]" (subscript_expression "puVar30[0x67]" identifier [ number_literal ]) & (subscript_expression "puVar32[3]" identifier [ number_literal ])) )) == number_literal))) ))) )) )) (compound_statement "{\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }" { (expression_statement "uVar23 = uVar23 + 0x30;" (assignment_expression "uVar23 = uVar23 + 0x30" identifier = (binary_expression "uVar23 + 0x30" identifier + number_literal)) ;) (if_statement "if (uVar29 <= uVar23) goto LAB_00081208;" if (parenthesized_expression "(uVar29 <= uVar23)" ( (binary_expression "uVar29 <= uVar23" identifier <= identifier) )) (goto_statement "goto LAB_00081208;" goto statement_identifier ;)) })) (expression_statement "iStack_364 = *piVar22;" (assignment_expression "iStack_364 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "puStack_360 = (undefined4 *)piVar22[1];" (assignment_expression "puStack_360 = (undefined4 *)piVar22[1]" identifier = (cast_expression "(undefined4 *)piVar22[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[1]" identifier [ number_literal ]))) ;) (expression_statement "iStack_358 = piVar22[3];" (assignment_expression "iStack_358 = piVar22[3]" identifier = (subscript_expression "piVar22[3]" identifier [ number_literal ])) ;) (expression_statement "iStack_350 = piVar22[5];" (assignment_expression "iStack_350 = piVar22[5]" identifier = (subscript_expression "piVar22[5]" identifier [ number_literal ])) ;) (expression_statement "iStack_34c = piVar22[6];" (assignment_expression "iStack_34c = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar30[5] + puVar30[3] * 0x30;" (assignment_expression "uVar14 = puVar30[5] + puVar30[3] * 0x30" identifier = (binary_expression "puVar30[5] + puVar30[3] * 0x30" (subscript_expression "puVar30[5]" identifier [ number_literal ]) + (binary_expression "puVar30[3] * 0x30" (subscript_expression "puVar30[3]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "uStack_35c = 0;" (assignment_expression "uStack_35c = 0" identifier = number_literal) ;) (expression_statement "uVar33 = puVar30[5];" (assignment_expression "uVar33 = puVar30[5]" identifier = (subscript_expression "puVar30[5]" identifier [ number_literal ])) ;) (expression_statement "puStack_354 = auStack_310;" (assignment_expression "puStack_354 = auStack_310" identifier = identifier) ;) (if_statement "if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }" if (parenthesized_expression "(uVar33 < uVar14)" ( (binary_expression "uVar33 < uVar14" identifier < identifier) )) (compound_statement "{\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }" { (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (do_statement "do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);" do (compound_statement "{\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        }" { (if_statement "if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }" if (parenthesized_expression "((*(ushort *)(uVar33 + 0xc) & 0x400) == 0)" ( (binary_expression "(*(ushort *)(uVar33 + 0xc) & 0x400) == 0" (parenthesized_expression "(*(ushort *)(uVar33 + 0xc) & 0x400)" ( (binary_expression "*(ushort *)(uVar33 + 0xc) & 0x400" (pointer_expression "*(ushort *)(uVar33 + 0xc)" * (cast_expression "(ushort *)(uVar33 + 0xc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar33 + 0xc)" ( (binary_expression "uVar33 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }" { (if_statement "if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }" if (parenthesized_expression "(*(int *)(uVar33 + 0x14) == iVar36)" ( (binary_expression "*(int *)(uVar33 + 0x14) == iVar36" (pointer_expression "*(int *)(uVar33 + 0x14)" * (cast_expression "(int *)(uVar33 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar33 + 0x14)" ( (binary_expression "uVar33 + 0x14" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }" { (expression_statement "uStack_2a0 = *puVar6;" (assignment_expression "uStack_2a0 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uStack_298 = 0x2c;" (assignment_expression "uStack_298 = 0x2c" identifier = number_literal) ;) (expression_statement "uStack_294 = 1;" (assignment_expression "uStack_294 = 1" identifier = number_literal) ;) (expression_statement "puStack_360 = &uStack_2a0;" (assignment_expression "puStack_360 = &uStack_2a0" identifier = (pointer_expression "&uStack_2a0" & identifier)) ;) (expression_statement "puStack_29c = puVar6;" (assignment_expression "puStack_29c = puVar6" identifier = identifier) ;) (expression_statement "uStack_28c = uVar33;" (assignment_expression "uStack_28c = uVar33" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;" if (parenthesized_expression "(*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0" (pointer_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar21 + 0x10) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar21 + 0x10) + 0x38)" ( (binary_expression "*(int *)(iVar21 + 0x10) + 0x38" (pointer_expression "*(int *)(iVar21 + 0x10)" * (cast_expression "(int *)(iVar21 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x10)" ( (binary_expression "iVar21 + 0x10" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00081310;" goto statement_identifier ;)) (labeled_statement "LAB_000813ec:\n              auStack_310[0] = 0;" statement_identifier : (expression_statement "auStack_310[0] = 0;" (assignment_expression "auStack_310[0] = 0" (subscript_expression "auStack_310[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "iVar47 = FUN_00080720(&iStack_364);" (assignment_expression "iVar47 = FUN_00080720(&iStack_364)" identifier = (call_expression "FUN_00080720(&iStack_364)" identifier (argument_list "(&iStack_364)" ( (pointer_expression "&iStack_364" & identifier) )))) ;) (goto_statement "goto joined_r0x00081334;" goto statement_identifier ;) })) }) (else_clause "else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }" else (compound_statement "{\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }" { (expression_statement "puStack_360 = *(undefined4 **)(uVar33 + 0x1c);" (assignment_expression "puStack_360 = *(undefined4 **)(uVar33 + 0x1c)" identifier = (pointer_expression "*(undefined4 **)(uVar33 + 0x1c)" * (cast_expression "(undefined4 **)(uVar33 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar33 + 0x1c)" ( (binary_expression "uVar33 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;" if (parenthesized_expression "(*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0" (pointer_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar21 + 0x10) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar21 + 0x10) + 0x38)" ( (binary_expression "*(int *)(iVar21 + 0x10) + 0x38" (pointer_expression "*(int *)(iVar21 + 0x10)" * (cast_expression "(int *)(iVar21 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x10)" ( (binary_expression "iVar21 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000813ec;" goto statement_identifier ;)) (labeled_statement "LAB_00081310:\n            auStack_310[0] = 0;" statement_identifier : (expression_statement "auStack_310[0] = 0;" (assignment_expression "auStack_310[0] = 0" (subscript_expression "auStack_310[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "iVar47 = FUN_0007403c(&iStack_364);" (assignment_expression "iVar47 = FUN_0007403c(&iStack_364)" identifier = (call_expression "FUN_0007403c(&iStack_364)" identifier (argument_list "(&iStack_364)" ( (pointer_expression "&iStack_364" & identifier) )))) ;) (labeled_statement "joined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }" statement_identifier : (if_statement "if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }" if (parenthesized_expression "(iVar47 == 0)" ( (binary_expression "iVar47 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }" { (expression_statement "iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);" (assignment_expression "iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364)" identifier = (call_expression "(*(code *)(iVar13 + 0x10a8))(&iStack_364)" (parenthesized_expression "(*(code *)(iVar13 + 0x10a8))" ( (pointer_expression "*(code *)(iVar13 + 0x10a8)" * (cast_expression "(code *)(iVar13 + 0x10a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10a8)" ( (binary_expression "iVar13 + 0x10a8" identifier + number_literal) )))) )) (argument_list "(&iStack_364)" ( (pointer_expression "&iStack_364" & identifier) )))) ;) }))) (expression_statement "uVar38 = (uint)auStack_310[0];" (assignment_expression "uVar38 = (uint)auStack_310[0]" identifier = (cast_expression "(uint)auStack_310[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "auStack_310[0]" identifier [ number_literal ]))) ;) (if_statement "if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }" if (parenthesized_expression "(uVar38 == 0)" ( (binary_expression "uVar38 == 0" identifier == number_literal) )) (compound_statement "{\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }" { (expression_statement "uStack_348 = uStack_348 & 0xffff;" (assignment_expression "uStack_348 = uStack_348 & 0xffff" identifier = (binary_expression "uStack_348 & 0xffff" identifier & number_literal)) ;) (break_statement "break;" break ;) })) (if_statement "if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }" { (expression_statement "uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);" (assignment_expression "uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_)" identifier = (call_expression "CONCAT22(auStack_310[0],uStack_348._2_2_)" identifier (argument_list "(auStack_310[0],uStack_348._2_2_)" ( (subscript_expression "auStack_310[0]" identifier [ number_literal ]) , (field_expression "uStack_348._2_2_" identifier . field_identifier) )))) ;) (expression_statement "puVar30 = auStack_308;" (assignment_expression "puVar30 = auStack_308" identifier = identifier) ;) (expression_statement "(**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);" (call_expression "(**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30)" (parenthesized_expression "(**(code **)(puVar48 + 0xda92c))" ( (pointer_expression "**(code **)(puVar48 + 0xda92c)" * (pointer_expression "*(code **)(puVar48 + 0xda92c)" * (cast_expression "(code **)(puVar48 + 0xda92c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + 0xda92c)" ( (binary_expression "puVar48 + 0xda92c" identifier + number_literal) ))))) )) (argument_list "(&uStack_340,puVar30,uVar38 << 4,0x30)" ( (pointer_expression "&uStack_340" & identifier) , identifier , (binary_expression "uVar38 << 4" identifier << number_literal) , number_literal ))) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }) (else_clause "else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }" else (compound_statement "{\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }" { (expression_statement "uVar41 = (uint)uStack_348._0_2_;" (assignment_expression "uVar41 = (uint)uStack_348._0_2_" identifier = (cast_expression "(uint)uStack_348._0_2_" ( (type_descriptor "uint" type_identifier) ) (field_expression "uStack_348._0_2_" identifier . field_identifier))) ;) (expression_statement "puVar30 = &uStack_340;" (assignment_expression "puVar30 = &uStack_340" identifier = (pointer_expression "&uStack_340" & identifier)) ;) (expression_statement "auStack_2d8[0] = uStack_348._0_2_;" (assignment_expression "auStack_2d8[0] = uStack_348._0_2_" (subscript_expression "auStack_2d8[0]" identifier [ number_literal ]) = (field_expression "uStack_348._0_2_" identifier . field_identifier)) ;) (expression_statement "(**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);" (call_expression "(**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30)" (parenthesized_expression "(**(code **)(puVar48 + 0xda92c))" ( (pointer_expression "**(code **)(puVar48 + 0xda92c)" * (pointer_expression "*(code **)(puVar48 + 0xda92c)" * (cast_expression "(code **)(puVar48 + 0xda92c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + 0xda92c)" ( (binary_expression "puVar48 + 0xda92c" identifier + number_literal) ))))) )) (argument_list "(auStack_2d0,puVar30,uVar41 * 0x10,0x30)" ( identifier , identifier , (binary_expression "uVar41 * 0x10" identifier * number_literal) , number_literal ))) ;) (expression_statement "uStack_348 = uStack_348 & 0xffff;" (assignment_expression "uStack_348 = uStack_348 & 0xffff" identifier = (binary_expression "uStack_348 & 0xffff" identifier & number_literal)) ;) (if_statement "if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }" if (parenthesized_expression "(uVar41 != 0)" ( (binary_expression "uVar41 != 0" identifier != number_literal) )) (compound_statement "{\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }" { (expression_statement "puVar34 = auStack_2d8;" (assignment_expression "puVar34 = auStack_2d8" identifier = identifier) ;) (expression_statement "puVar15 = puVar34 + uVar41 * 8;" (assignment_expression "puVar15 = puVar34 + uVar41 * 8" identifier = (binary_expression "puVar34 + uVar41 * 8" identifier + (binary_expression "uVar41 * 8" identifier * number_literal))) ;) (do_statement "do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);" do (compound_statement "{\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                }" { (if_statement "if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }" if (parenthesized_expression "(uVar38 != 0)" ( (binary_expression "uVar38 != 0" identifier != number_literal) )) (compound_statement "{\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }" { (expression_statement "uVar41 = *(uint *)(puVar34 + 4);" (assignment_expression "uVar41 = *(uint *)(puVar34 + 4)" identifier = (pointer_expression "*(uint *)(puVar34 + 4)" * (cast_expression "(uint *)(puVar34 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 4)" ( (binary_expression "puVar34 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "uVar38 = *(uint *)(puVar34 + 6);" (assignment_expression "uVar38 = *(uint *)(puVar34 + 6)" identifier = (pointer_expression "*(uint *)(puVar34 + 6)" * (cast_expression "(uint *)(puVar34 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 6)" ( (binary_expression "puVar34 + 6" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = puVar34[8];" (assignment_expression "uVar1 = puVar34[8]" identifier = (subscript_expression "puVar34[8]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar34[9];" (assignment_expression "uVar2 = puVar34[9]" identifier = (subscript_expression "puVar34[9]" identifier [ number_literal ])) ;) (expression_statement "puVar46 = auStack_310;" (assignment_expression "puVar46 = auStack_310" identifier = identifier) ;) (do_statement "do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);" do (compound_statement "{\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    }" { (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "pcVar9 = (code *)(iVar37 + 0x358);" (assignment_expression "pcVar9 = (code *)(iVar37 + 0x358)" identifier = (cast_expression "(code *)(iVar37 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x358)" ( (binary_expression "iVar37 + 0x358" identifier + number_literal) )))) ;) (expression_statement "(*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);" (call_expression "(*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38)" (parenthesized_expression "(*(code *)(iVar37 + 0x358))" ( (pointer_expression "*(code *)(iVar37 + 0x358)" * (cast_expression "(code *)(iVar37 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x358)" ( (binary_expression "iVar37 + 0x358" identifier + number_literal) )))) )) (argument_list "((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38)" ( (cast_expression "(int)(short)uVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) , (cast_expression "(int)(short)puVar46[8]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)puVar46[8]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "puVar46[8]" identifier [ number_literal ]))) , (binary_expression "*(uint *)(puVar46 + 4) | uVar41" (pointer_expression "*(uint *)(puVar46 + 4)" * (cast_expression "(uint *)(puVar46 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 4)" ( (binary_expression "puVar46 + 4" identifier + number_literal) )))) | identifier) , (binary_expression "*(uint *)(puVar46 + 6) | uVar38" (pointer_expression "*(uint *)(puVar46 + 6)" * (cast_expression "(uint *)(puVar46 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 6)" ( (binary_expression "puVar46 + 6" identifier + number_literal) )))) | identifier) ))) ;) (expression_statement "puVar30 = (uint *)(int)(short)puVar46[9];" (assignment_expression "puVar30 = (uint *)(int)(short)puVar46[9]" identifier = (cast_expression "(uint *)(int)(short)puVar46[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(short)puVar46[9]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)puVar46[9]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "puVar46[9]" identifier [ number_literal ]))))) ;) (expression_statement "(*pcVar9)((int)(short)uVar2);" (call_expression "(*pcVar9)((int)(short)uVar2)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)(short)uVar2)" ( (cast_expression "(int)(short)uVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)uVar2" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ))) ;) (expression_statement "(*(code *)(iVar8 + -0x58))(&uStack_348);" (call_expression "(*(code *)(iVar8 + -0x58))(&uStack_348)" (parenthesized_expression "(*(code *)(iVar8 + -0x58))" ( (pointer_expression "*(code *)(iVar8 + -0x58)" * (cast_expression "(code *)(iVar8 + -0x58)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x58)" ( (binary_expression "iVar8 + -0x58" identifier + number_literal) )))) )) (argument_list "(&uStack_348)" ( (pointer_expression "&uStack_348" & identifier) ))) ;) (expression_statement "puVar46 = puVar46 + 8;" (assignment_expression "puVar46 = puVar46 + 8" identifier = (binary_expression "puVar46 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar35 < (int)(uint)auStack_310[0])" ( (binary_expression "iVar35 < (int)(uint)auStack_310[0]" identifier < (cast_expression "(int)(uint)auStack_310[0]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)auStack_310[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "auStack_310[0]" identifier [ number_literal ])))) )) ;) })) (expression_statement "puVar34 = puVar34 + 8;" (assignment_expression "puVar34 = puVar34 + 8" identifier = (binary_expression "puVar34 + 8" identifier + number_literal)) ;) (expression_statement "uVar38 = (uint)auStack_310[0];" (assignment_expression "uVar38 = (uint)auStack_310[0]" identifier = (cast_expression "(uint)auStack_310[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "auStack_310[0]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar15 != puVar34)" ( (binary_expression "puVar15 != puVar34" identifier != identifier) )) ;) })) }))) }))) (expression_statement "uVar33 = uVar33 + 0x30;" (assignment_expression "uVar33 = uVar33 + 0x30" identifier = (binary_expression "uVar33 + 0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar33 < uVar14)" ( (binary_expression "uVar33 < uVar14" identifier < identifier) )) ;) (expression_statement "*(undefined2 *)(puVar32 + 10) = 1;" (assignment_expression "*(undefined2 *)(puVar32 + 10) = 1" (pointer_expression "*(undefined2 *)(puVar32 + 10)" * (cast_expression "(undefined2 *)(puVar32 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)puVar32[0xc] = uVar23;" (assignment_expression "*(uint *)puVar32[0xc] = uVar23" (pointer_expression "*(uint *)puVar32[0xc]" * (cast_expression "(uint *)puVar32[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[0xc]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar32[9] = 0x2000;" (assignment_expression "puVar32[9] = 0x2000" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 6)" * (cast_expression "(undefined1 *)(puVar32 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x19) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x19) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x19)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x19)" ( (binary_expression "(int)puVar32 + 0x19" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1a)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1a)" ( (binary_expression "(int)puVar32 + 0x1a" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1b) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1b)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1b)" ( (binary_expression "(int)puVar32 + 0x1b" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 7)" * (cast_expression "(undefined1 *)(puVar32 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 7)" ( (binary_expression "puVar32 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1d)" ( (binary_expression "(int)puVar32 + 0x1d" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1e)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1e)" ( (binary_expression "(int)puVar32 + 0x1e" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1f)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1f)" ( (binary_expression "(int)puVar32 + 0x1f" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 8)" * (cast_expression "(undefined1 *)(puVar32 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x21) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x21) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x21)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x21)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x21)" ( (binary_expression "(int)puVar32 + 0x21" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x22) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x22) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x22)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x22)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x22)" ( (binary_expression "(int)puVar32 + 0x22" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x23) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x23) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x23)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x23)" ( (binary_expression "(int)puVar32 + 0x23" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (iVar47 != 0) goto LAB_0008120c;" if (parenthesized_expression "(iVar47 != 0)" ( (binary_expression "iVar47 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008120c;" goto statement_identifier ;)) }) (else_clause "else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }" else (compound_statement "{\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }" { (expression_statement "*(undefined2 *)(puVar32 + 10) = 1;" (assignment_expression "*(undefined2 *)(puVar32 + 10) = 1" (pointer_expression "*(undefined2 *)(puVar32 + 10)" * (cast_expression "(undefined2 *)(puVar32 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)puVar32[0xc] = uVar23;" (assignment_expression "*(uint *)puVar32[0xc] = uVar23" (pointer_expression "*(uint *)puVar32[0xc]" * (cast_expression "(uint *)puVar32[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[0xc]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar32[9] = 0x2000;" (assignment_expression "puVar32[9] = 0x2000" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 6)" * (cast_expression "(undefined1 *)(puVar32 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x19) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x19) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x19)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x19)" ( (binary_expression "(int)puVar32 + 0x19" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1a)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1a)" ( (binary_expression "(int)puVar32 + 0x1a" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1b) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1b)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1b)" ( (binary_expression "(int)puVar32 + 0x1b" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 7)" * (cast_expression "(undefined1 *)(puVar32 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 7)" ( (binary_expression "puVar32 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1d)" ( (binary_expression "(int)puVar32 + 0x1d" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1e)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1e)" ( (binary_expression "(int)puVar32 + 0x1e" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1f)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x1f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x1f)" ( (binary_expression "(int)puVar32 + 0x1f" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar32 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 8)" * (cast_expression "(undefined1 *)(puVar32 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x21) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x21) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x21)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x21)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x21)" ( (binary_expression "(int)puVar32 + 0x21" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x22) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x22) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x22)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x22)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x22)" ( (binary_expression "(int)puVar32 + 0x22" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar32 + 0x23) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x23) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x23)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x23)" ( (binary_expression "(int)puVar32 + 0x23" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }))) (expression_statement "iVar35 = *(int *)(puVar48 + 0xda618);" (assignment_expression "iVar35 = *(int *)(puVar48 + 0xda618)" identifier = (pointer_expression "*(int *)(puVar48 + 0xda618)" * (cast_expression "(int *)(puVar48 + 0xda618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + 0xda618)" ( (binary_expression "puVar48 + 0xda618" identifier + number_literal) ))))) ;) (if_statement "if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }" if (parenthesized_expression "(uStack_348._0_2_ != 0)" ( (binary_expression "uStack_348._0_2_ != 0" (field_expression "uStack_348._0_2_" identifier . field_identifier) != number_literal) )) (compound_statement "{\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }" { (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" identifier = number_literal) ;) (expression_statement "puVar49 = &uStack_348;" (assignment_expression "puVar49 = &uStack_348" identifier = (pointer_expression "&uStack_348" & identifier)) ;) (do_statement "do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));" do (compound_statement "{\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        }" { (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" identifier = (binary_expression "iVar42 + 1" identifier + number_literal)) ;) (expression_statement "*(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;" (assignment_expression "*(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1" (pointer_expression "*(short *)(puVar32 + 5)" * (cast_expression "(short *)(puVar32 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = (binary_expression "*(short *)(puVar49 + 4) + 1" (pointer_expression "*(short *)(puVar49 + 4)" * (cast_expression "(short *)(puVar49 + 4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 4)" ( (binary_expression "puVar49 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12)" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x16)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x16)" ( (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined2 *)((int)puVar49 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar49 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x12)" ( (binary_expression "(int)puVar49 + 0x12" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar14 = puVar49[2];" (assignment_expression "uVar14 = puVar49[2]" identifier = (subscript_expression "puVar49[2]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar49[3];" (assignment_expression "puVar32[1] = puVar49[3]" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (subscript_expression "puVar49[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar32 = uVar14;" (assignment_expression "*puVar32 = uVar14" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "puVar30 = puVar32;" (assignment_expression "puVar30 = puVar32" identifier = identifier) ;) (expression_statement "iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);" (assignment_expression "iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22)" identifier = (call_expression "(*(code *)(iVar35 + -0x51d8))(piVar22)" (parenthesized_expression "(*(code *)(iVar35 + -0x51d8))" ( (pointer_expression "*(code *)(iVar35 + -0x51d8)" * (cast_expression "(code *)(iVar35 + -0x51d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + -0x51d8)" ( (binary_expression "iVar35 + -0x51d8" identifier + number_literal) )))) )) (argument_list "(piVar22)" ( identifier )))) ;) (if_statement "if (iVar47 != 0) goto LAB_0008120c;" if (parenthesized_expression "(iVar47 != 0)" ( (binary_expression "iVar47 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008120c;" goto statement_identifier ;)) (expression_statement "puVar49 = puVar49 + 4;" (assignment_expression "puVar49 = puVar49 + 4" identifier = (binary_expression "puVar49 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar42 < (int)(uStack_348 >> 0x10))" ( (binary_expression "iVar42 < (int)(uStack_348 >> 0x10)" identifier < (cast_expression "(int)(uStack_348 >> 0x10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uStack_348 >> 0x10)" ( (binary_expression "uStack_348 >> 0x10" identifier >> number_literal) )))) )) ;) })) (expression_statement "uVar23 = uVar23 + 0x30;" (assignment_expression "uVar23 = uVar23 + 0x30" identifier = (binary_expression "uVar23 + 0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar23 < uVar29)" ( (binary_expression "uVar23 < uVar29" identifier < identifier) )) ;) (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }" statement_identifier : (if_statement "if (iStack_104 == *piVar12) {\n    return iVar47;\n  }" if (parenthesized_expression "(iStack_104 == *piVar12)" ( (binary_expression "iStack_104 == *piVar12" identifier == (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    return iVar47;\n  }" { (return_statement "return iVar47;" return identifier ;) }))) (expression_statement "iVar21 = iStack_104;" (assignment_expression "iVar21 = iStack_104" identifier = identifier) ;) (expression_statement "(**(code **)(puVar48 + 0xda968))();" (call_expression "(**(code **)(puVar48 + 0xda968))()" (parenthesized_expression "(**(code **)(puVar48 + 0xda968))" ( (pointer_expression "**(code **)(puVar48 + 0xda968)" * (pointer_expression "*(code **)(puVar48 + 0xda968)" * (cast_expression "(code **)(puVar48 + 0xda968)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + 0xda968)" ( (binary_expression "puVar48 + 0xda968" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar36 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar36 = *(int *)(iVar21 + 0x18)" identifier = (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = FUN_0007bd64(0);" (assignment_expression "iVar21 = FUN_0007bd64(0)" identifier = (call_expression "FUN_0007bd64(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (if_statement "if (iVar21 != 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined1 *)puVar30 = 0x9e;" (assignment_expression "*(undefined1 *)puVar30 = 0x9e" (pointer_expression "*(undefined1 *)puVar30" * (cast_expression "(undefined1 *)puVar30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar30[7] = *(uint *)(iVar36 + 8);" (assignment_expression "puVar30[7] = *(uint *)(iVar36 + 8)" (subscript_expression "puVar30[7]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(iVar36 + 8)" * (cast_expression "(uint *)(iVar36 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(uint *)(iVar36 + 0xc);" (assignment_expression "uVar23 = *(uint *)(iVar36 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar36 + 0xc)" * (cast_expression "(uint *)(iVar36 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0xc)" ( (binary_expression "iVar36 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar30[0xc] = 0;" (assignment_expression "puVar30[0xc] = 0" (subscript_expression "puVar30[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar30[8] = uVar23;" (assignment_expression "puVar30[8] = uVar23" (subscript_expression "puVar30[8]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 1;" return number_literal ;) (labeled_statement "code_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;" statement_identifier : (expression_statement "*(undefined2 *)(puVar32 + 6) = 1;" (assignment_expression "*(undefined2 *)(puVar32 + 6) = 1" (pointer_expression "*(undefined2 *)(puVar32 + 6)" * (cast_expression "(undefined2 *)(puVar32 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "puVar32[8] = 0;" (assignment_expression "puVar32[8] = 0" (subscript_expression "puVar32[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[10] = 0x10000;" (assignment_expression "puVar32[10] = 0x10000" (subscript_expression "puVar32[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(char **)puVar32[0xc] = pcVar44;" (assignment_expression "*(char **)puVar32[0xc] = pcVar44" (pointer_expression "*(char **)puVar32[0xc]" * (cast_expression "(char **)puVar32[0xc]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar32[0xc]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "*(short *)((int)puVar32 + 0x12) = sStack_b2;" (assignment_expression "*(short *)((int)puVar32 + 0x12) = sStack_b2" (pointer_expression "*(short *)((int)puVar32 + 0x12)" * (cast_expression "(short *)((int)puVar32 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }" if (parenthesized_expression "((puVar6[3] == 0) && ((puVar6[9] & 2) == 0))" ( (binary_expression "(puVar6[3] == 0) && ((puVar6[9] & 2) == 0)" (parenthesized_expression "(puVar6[3] == 0)" ( (binary_expression "puVar6[3] == 0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((puVar6[9] & 2) == 0)" ( (binary_expression "(puVar6[9] & 2) == 0" (parenthesized_expression "(puVar6[9] & 2)" ( (binary_expression "puVar6[9] & 2" (subscript_expression "puVar6[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    sVar17 = sStack_b2 + 0x1c;\n  }" { (expression_statement "sVar17 = sStack_b2 + 0x1c;" (assignment_expression "sVar17 = sStack_b2 + 0x1c" identifier = (binary_expression "sStack_b2 + 0x1c" identifier + number_literal)) ;) }) (else_clause "else {\n    sVar17 = sStack_b2 + -10;\n  }" else (compound_statement "{\n    sVar17 = sStack_b2 + -10;\n  }" { (expression_statement "sVar17 = sStack_b2 + -10;" (assignment_expression "sVar17 = sStack_b2 + -10" identifier = (binary_expression "sStack_b2 + -10" identifier + number_literal)) ;) }))) (if_statement "if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }" if (parenthesized_expression "(sVar17 < 0)" ( (binary_expression "sVar17 < 0" identifier < number_literal) )) (compound_statement "{\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }" { (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }" else (compound_statement "{\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }" { (expression_statement "*(short *)((int)puVar32 + 0x12) = sVar17;" (assignment_expression "*(short *)((int)puVar32 + 0x12) = sVar17" (pointer_expression "*(short *)((int)puVar32 + 0x12)" * (cast_expression "(short *)((int)puVar32 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x12)" ( (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }))) (expression_statement "*(undefined2 *)((int)puVar32 + 0x16) = 0x2b;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x16) = 0x2b" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x16)" * (cast_expression "(undefined2 *)((int)puVar32 + 0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x16)" ( (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = (*pcVar11)(puVar7,0x2b);" (assignment_expression "uVar16 = (*pcVar11)(puVar7,0x2b)" identifier = (call_expression "(*pcVar11)(puVar7,0x2b)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(puVar7,0x2b)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(puVar32 + 5) = uVar16;" (assignment_expression "*(undefined2 *)(puVar32 + 5) = uVar16" (pointer_expression "*(undefined2 *)(puVar32 + 5)" * (cast_expression "(undefined2 *)(puVar32 + 5)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar32[9] = 0x4000;" (assignment_expression "puVar32[9] = 0x4000" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;" (assignment_expression "*puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3" (pointer_expression "*puVar32" * identifier) = (binary_expression "*(uint *)(pcVar44 + 0x20) | (uint)param_3" (pointer_expression "*(uint *)(pcVar44 + 0x20)" * (cast_expression "(uint *)(pcVar44 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar44 + 0x20)" ( (binary_expression "pcVar44 + 0x20" identifier + number_literal) )))) | (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;" (assignment_expression "puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (binary_expression "*(uint *)(pcVar44 + 0x24) | (uint)param_4" (pointer_expression "*(uint *)(pcVar44 + 0x24)" * (cast_expression "(uint *)(pcVar44 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar44 + 0x24)" ( (binary_expression "pcVar44 + 0x24" identifier + number_literal) )))) | (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar8 = (*pcVar9)(param_1,puVar32);" (assignment_expression "iVar8 = (*pcVar9)(param_1,puVar32)" identifier = (call_expression "(*pcVar9)(param_1,puVar32)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(param_1,puVar32)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00080a6c;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;)) (goto_statement "goto LAB_00080e28;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }" { (expression_statement "iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);" (assignment_expression "iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6)" identifier = (call_expression "(*pcVar10)(pcVar43,*puVar45,unaff_s6)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pcVar43,*puVar45,unaff_s6)" ( identifier , (pointer_expression "*puVar45" * identifier) , identifier )))) ;) (if_statement "if (iVar8 == 0) goto LAB_00080b70;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (expression_statement "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);" (assignment_expression "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32)" identifier = (binary_expression "(uint)*(ushort *)((int)puVar49 + 0x32)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)puVar49 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x32)" ( (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar45 = puVar45 + 5;" (assignment_expression "puVar45 = puVar45 + 5" identifier = (binary_expression "puVar45 + 5" identifier + number_literal)) ;) (expression_statement "pcVar31 = pcVar40 + 1;" (assignment_expression "pcVar31 = pcVar40 + 1" identifier = (binary_expression "pcVar40 + 1" identifier + number_literal)) ;) (if_statement "if ((int)uVar23 <= (int)(pcVar40 + 1)) break;" if (parenthesized_expression "((int)uVar23 <= (int)(pcVar40 + 1))" ( (binary_expression "(int)uVar23 <= (int)(pcVar40 + 1)" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(pcVar40 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar40 + 1)" ( (binary_expression "pcVar40 + 1" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00080ad0:\n    pcVar40 = pcVar31;" statement_identifier : (expression_statement "pcVar40 = pcVar31;" (assignment_expression "pcVar40 = pcVar31" identifier = identifier) ;)) (if_statement "if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }" if (parenthesized_expression "(*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2)" ( (binary_expression "*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2" (pointer_expression "*(short *)(puVar49[1] + (int)pcVar40 * 2)" * (cast_expression "(short *)(puVar49[1] + (int)pcVar40 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49[1] + (int)pcVar40 * 2)" ( (binary_expression "puVar49[1] + (int)pcVar40 * 2" (subscript_expression "puVar49[1]" identifier [ number_literal ]) + (binary_expression "(int)pcVar40 * 2" (cast_expression "(int)pcVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) != number_literal) )) (compound_statement "{\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }" { (expression_statement "puVar45 = puVar45 + 5;" (assignment_expression "puVar45 = puVar45 + 5" identifier = (binary_expression "puVar45 + 5" identifier + number_literal)) ;) (expression_statement "pcVar31 = pcVar40 + 1;" (assignment_expression "pcVar31 = pcVar40 + 1" identifier = (binary_expression "pcVar40 + 1" identifier + number_literal)) ;) (if_statement "if ((int)uVar23 <= (int)(pcVar40 + 1)) break;" if (parenthesized_expression "((int)uVar23 <= (int)(pcVar40 + 1))" ( (binary_expression "(int)uVar23 <= (int)(pcVar40 + 1)" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(pcVar40 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar40 + 1)" ( (binary_expression "pcVar40 + 1" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00080ad0;" goto statement_identifier ;) })) })) (expression_statement "pcVar40 = pcVar40 + 1;" (assignment_expression "pcVar40 = pcVar40 + 1" identifier = (binary_expression "pcVar40 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = *piVar22;" (assignment_expression "iVar8 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (labeled_statement "LAB_00080938:\n  iVar37 = iVar37 + 1;" statement_identifier : (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;)) (expression_statement "piVar12 = piVar12 + 5;" (assignment_expression "piVar12 = piVar12 + 5" identifier = (binary_expression "piVar12 + 5" identifier + number_literal)) ;) (if_statement "if (iVar8 <= iVar37) goto code_r0x00080948;" if (parenthesized_expression "(iVar8 <= iVar37)" ( (binary_expression "iVar8 <= iVar37" identifier <= identifier) )) (goto_statement "goto code_r0x00080948;" goto statement_identifier ;)) (goto_statement "goto LAB_000808d4;" goto statement_identifier ;) (labeled_statement "LAB_00080b5c:\n  psVar26 = psVar26 + 1;" statement_identifier : (expression_statement "psVar26 = psVar26 + 1;" (assignment_expression "psVar26 = psVar26 + 1" identifier = (binary_expression "psVar26 + 1" identifier + number_literal)) ;)) (if_statement "if (psVar27 == psVar26) goto LAB_00080938;" if (parenthesized_expression "(psVar27 == psVar26)" ( (binary_expression "psVar27 == psVar26" identifier == identifier) )) (goto_statement "goto LAB_00080938;" goto statement_identifier ;)) (if_statement "if (iVar13 == *psVar26) goto LAB_00080b70;" if (parenthesized_expression "(iVar13 == *psVar26)" ( (binary_expression "iVar13 == *psVar26" identifier == (pointer_expression "*psVar26" * identifier)) )) (goto_statement "goto LAB_00080b70;" goto statement_identifier ;)) (goto_statement "goto LAB_00080b5c;" goto statement_identifier ;) (labeled_statement "code_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);" statement_identifier : (expression_statement "bVar18 = *(byte *)((int)puVar49 + 0x37);" (assignment_expression "bVar18 = *(byte *)((int)puVar49 + 0x37)" identifier = (pointer_expression "*(byte *)((int)puVar49 + 0x37)" * (cast_expression "(byte *)((int)puVar49 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x37)" ( (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (labeled_statement "LAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" statement_identifier : (if_statement "if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" if (parenthesized_expression "((bVar18 & 0xc0) == 0xc0)" ( (binary_expression "(bVar18 & 0xc0) == 0xc0" (parenthesized_expression "(bVar18 & 0xc0)" ( (binary_expression "bVar18 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" { (expression_statement "puVar32[9] = 0x100;" (assignment_expression "puVar32[9] = 0x100" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;" statement_identifier : (expression_statement "*(short *)(puVar32 + 5) = sVar17 + 0x10;" (assignment_expression "*(short *)(puVar32 + 5) = sVar17 + 0x10" (pointer_expression "*(short *)(puVar32 + 5)" * (cast_expression "(short *)(puVar32 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = (binary_expression "sVar17 + 0x10" identifier + number_literal)) ;)) (expression_statement "*(byte *)((int)puVar32 + 0x11) = bVar24;" (assignment_expression "*(byte *)((int)puVar32 + 0x11) = bVar24" (pointer_expression "*(byte *)((int)puVar32 + 0x11)" * (cast_expression "(byte *)((int)puVar32 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar25 = *(undefined4 *)(iVar21 + 0xc);" (assignment_expression "uVar25 = *(undefined4 *)(iVar21 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar21 + 0xc)" * (cast_expression "(undefined4 *)(iVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0xc)" ( (binary_expression "iVar21 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" else (compound_statement "{\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" { (labeled_statement "LAB_0008096c:\n    bVar3 = false;" statement_identifier : (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;)) (labeled_statement "joined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" statement_identifier : (if_statement "if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" if (parenthesized_expression "((bVar18 & 4) == 0)" ( (binary_expression "(bVar18 & 4) == 0" (parenthesized_expression "(bVar18 & 4)" ( (binary_expression "bVar18 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }" { (expression_statement "uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];" (assignment_expression "uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11]" identifier = (binary_expression "*(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11]" (binary_expression "*(uint *)(iVar36 + 0x38) & puVar49[0x10]" (pointer_expression "*(uint *)(iVar36 + 0x38)" * (cast_expression "(uint *)(iVar36 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x38)" ( (binary_expression "iVar36 + 0x38" identifier + number_literal) )))) & (subscript_expression "puVar49[0x10]" identifier [ number_literal ])) | (binary_expression "*(uint *)(iVar36 + 0x3c) & puVar49[0x11]" (pointer_expression "*(uint *)(iVar36 + 0x3c)" * (cast_expression "(uint *)(iVar36 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x3c)" ( (binary_expression "iVar36 + 0x3c" identifier + number_literal) )))) & (subscript_expression "puVar49[0x11]" identifier [ number_literal ])))) ;) (expression_statement "uVar23 = 0x240;" (assignment_expression "uVar23 = 0x240" identifier = number_literal) ;) (if_statement "if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar23 = 0x200;\n      }" { (expression_statement "uVar23 = 0x200;" (assignment_expression "uVar23 = 0x200" identifier = number_literal) ;) })) (expression_statement "puVar32[9] = uVar23;" (assignment_expression "puVar32[9] = uVar23" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (!bVar3) goto LAB_00080984;" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (goto_statement "goto LAB_00080984;" goto statement_identifier ;)) (labeled_statement "LAB_00080bcc:\n      cVar19 = cVar20 + '\x01';" statement_identifier : (expression_statement "cVar19 = cVar20 + '\x01';" (assignment_expression "cVar19 = cVar20 + '\x01'" identifier = (binary_expression "cVar20 + '\x01'" identifier + (char_literal "'\x01'" ' escape_sequence '))) ;)) (labeled_statement "LAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;" statement_identifier : (expression_statement "*(char *)((int)puVar32 + 0x11) = cVar19;" (assignment_expression "*(char *)((int)puVar32 + 0x11) = cVar19" (pointer_expression "*(char *)((int)puVar32 + 0x11)" * (cast_expression "(char *)((int)puVar32 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (if_statement "if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(*(short *)((int)puVar6 + 0x2e) == 0)" ( (binary_expression "*(short *)((int)puVar6 + 0x2e) == 0" (pointer_expression "*(short *)((int)puVar6 + 0x2e)" * (cast_expression "(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;" (assignment_expression "sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1" identifier = (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1" (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17" (cast_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" ( (binary_expression "(*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)" (parenthesized_expression "(*(short *)(puVar49 + 0xc) * 0xf)" ( (binary_expression "*(short *)(puVar49 + 0xc) * 0xf" (pointer_expression "*(short *)(puVar49 + 0xc)" * (cast_expression "(short *)(puVar49 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0xc)" ( (binary_expression "puVar49 + 0xc" identifier + number_literal) )))) * number_literal) )) / (cast_expression "(int)*(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)puVar6 + 0x2e)" * (cast_expression "(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) + identifier) + number_literal)) ;) (expression_statement "*(short *)(puVar32 + 5) = sVar28;" (assignment_expression "*(short *)(puVar32 + 5) = sVar28" (pointer_expression "*(short *)(puVar32 + 5)" * (cast_expression "(short *)(puVar32 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }" { (expression_statement "puVar7 = *(uint **)(iVar36 + 0x28);" (assignment_expression "puVar7 = *(uint **)(iVar36 + 0x28)" identifier = (pointer_expression "*(uint **)(iVar36 + 0x28)" * (cast_expression "(uint **)(iVar36 + 0x28)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + 0x28)" ( (binary_expression "iVar36 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pcVar43 = (char *)(int)(short)(sVar17 + 0x10);" (assignment_expression "pcVar43 = (char *)(int)(short)(sVar17 + 0x10)" identifier = (cast_expression "(char *)(int)(short)(sVar17 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(short)(sVar17 + 0x10)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)(sVar17 + 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(sVar17 + 0x10)" ( (binary_expression "sVar17 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }" if (parenthesized_expression "(0 < *(int *)(pcVar39 + 0x5c))" ( (binary_expression "0 < *(int *)(pcVar39 + 0x5c)" number_literal < (pointer_expression "*(int *)(pcVar39 + 0x5c)" * (cast_expression "(int *)(pcVar39 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x5c)" ( (binary_expression "pcVar39 + 0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }" { (expression_statement "pcVar40 = (char *)0x0;" (assignment_expression "pcVar40 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6d8 + 0x7254)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + 0x7254)" ( (binary_expression "PTR_LAB_0015b6d8 + 0x7254" identifier + number_literal) )))) ;) (do_statement "do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));" do (compound_statement "{\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          }" { (while_statement "while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }" { (expression_statement "unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);" (assignment_expression "unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30)" ( (binary_expression "*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30" (pointer_expression "*(int *)(pcVar39 + 100)" * (cast_expression "(int *)(pcVar39 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 100)" ( (binary_expression "pcVar39 + 100" identifier + number_literal) )))) + (binary_expression "(int)pcVar40 * 0x30" (cast_expression "(int)pcVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);" (assignment_expression "iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49)" identifier = (call_expression "(*pcVar11)(*unaff_s6,puVar7,puVar49)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(*unaff_s6,puVar7,puVar49)" ( (pointer_expression "*unaff_s6" * identifier) , identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) goto LAB_00080d34;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00080d34;" goto statement_identifier ;)) (expression_statement "sVar28 = (short)pcVar43;" (assignment_expression "sVar28 = (short)pcVar43" identifier = (cast_expression "(short)pcVar43" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if (0 < *(short *)(unaff_s6 + 2)) break;" if (parenthesized_expression "(0 < *(short *)(unaff_s6 + 2))" ( (binary_expression "0 < *(short *)(unaff_s6 + 2)" number_literal < (pointer_expression "*(short *)(unaff_s6 + 2)" * (cast_expression "(short *)(unaff_s6 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 2)" ( (binary_expression "unaff_s6 + 2" identifier + number_literal) ))))) )) (break_statement "break;" break ;)) (expression_statement "pcVar40 = pcVar40 + 1;" (assignment_expression "pcVar40 = pcVar40 + 1" identifier = (binary_expression "pcVar40 + 1" identifier + number_literal)) ;) (expression_statement "pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));" (assignment_expression "pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2))" identifier = (cast_expression "(char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(short)(sVar28 + *(short *)(unaff_s6 + 2))" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)(sVar28 + *(short *)(unaff_s6 + 2))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(sVar28 + *(short *)(unaff_s6 + 2))" ( (binary_expression "sVar28 + *(short *)(unaff_s6 + 2)" identifier + (pointer_expression "*(short *)(unaff_s6 + 2)" * (cast_expression "(short *)(unaff_s6 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 2)" ( (binary_expression "unaff_s6 + 2" identifier + number_literal) ))))) )))))) ;) (if_statement "if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;" if (parenthesized_expression "(*(int *)(pcVar39 + 0x5c) <= (int)pcVar40)" ( (binary_expression "*(int *)(pcVar39 + 0x5c) <= (int)pcVar40" (pointer_expression "*(int *)(pcVar39 + 0x5c)" * (cast_expression "(int *)(pcVar39 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x5c)" ( (binary_expression "pcVar39 + 0x5c" identifier + number_literal) )))) <= (cast_expression "(int)pcVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00080d34;" goto statement_identifier ;)) })) (if_statement "if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }" if (parenthesized_expression "((*(ushort *)(unaff_s6 + 3) & 0x82) == 0)" ( (binary_expression "(*(ushort *)(unaff_s6 + 3) & 0x82) == 0" (parenthesized_expression "(*(ushort *)(unaff_s6 + 3) & 0x82)" ( (binary_expression "*(ushort *)(unaff_s6 + 3) & 0x82" (pointer_expression "*(ushort *)(unaff_s6 + 3)" * (cast_expression "(ushort *)(unaff_s6 + 3)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 3)" ( (binary_expression "unaff_s6 + 3" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              sVar28 = sVar28 + -1;\n            }" { (expression_statement "sVar28 = sVar28 + -1;" (assignment_expression "sVar28 = sVar28 + -1" identifier = (binary_expression "sVar28 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n              sVar28 = sVar28 + -0x14;\n            }" else (compound_statement "{\n              sVar28 = sVar28 + -0x14;\n            }" { (expression_statement "sVar28 = sVar28 + -0x14;" (assignment_expression "sVar28 = sVar28 + -0x14" identifier = (binary_expression "sVar28 + -0x14" identifier + number_literal)) ;) }))) (expression_statement "pcVar43 = (char *)(int)sVar28;" (assignment_expression "pcVar43 = (char *)(int)sVar28" identifier = (cast_expression "(char *)(int)sVar28" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)sVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar40 = pcVar40 + 1;" (assignment_expression "pcVar40 = pcVar40 + 1" identifier = (binary_expression "pcVar40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)pcVar40 < *(int *)(pcVar39 + 0x5c))" ( (binary_expression "(int)pcVar40 < *(int *)(pcVar39 + 0x5c)" (cast_expression "(int)pcVar40" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(pcVar39 + 0x5c)" * (cast_expression "(int *)(pcVar39 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x5c)" ( (binary_expression "pcVar39 + 0x5c" identifier + number_literal) ))))) )) ;) (labeled_statement "LAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);" statement_identifier : (expression_statement "sVar28 = *(short *)(puVar32 + 5);" (assignment_expression "sVar28 = *(short *)(puVar32 + 5)" identifier = (pointer_expression "*(short *)(puVar32 + 5)" * (cast_expression "(short *)(puVar32 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) ))))) ;)) })) (expression_statement "uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);" (assignment_expression "uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43)" identifier = (call_expression "(*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43)" (parenthesized_expression "(*(code *)(puVar5 + 0x358))" ( (pointer_expression "*(code *)(puVar5 + 0x358)" * (cast_expression "(code *)(puVar5 + 0x358)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x358)" ( (binary_expression "puVar5 + 0x358" identifier + number_literal) )))) )) (argument_list "((int)sVar28,pcVar43)" ( (cast_expression "(int)sVar28" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "*(undefined2 *)(puVar32 + 5) = uVar16;" (assignment_expression "*(undefined2 *)(puVar32 + 5) = uVar16" (pointer_expression "*(undefined2 *)(puVar32 + 5)" * (cast_expression "(undefined2 *)(puVar32 + 5)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" else (compound_statement "{\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" { (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "puVar32[9] = 0x240;" (assignment_expression "puVar32[9] = 0x240" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (bVar3) goto LAB_00080bcc;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00080bcc;" goto statement_identifier ;)) (labeled_statement "LAB_00080984:\n      cVar19 = '\0';" statement_identifier : (expression_statement "cVar19 = '\0';" (assignment_expression "cVar19 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;" if (parenthesized_expression "(((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0))" ( (binary_expression "((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)" (parenthesized_expression "((puVar6[9] & 0x20) != 0)" ( (binary_expression "(puVar6[9] & 0x20) != 0" (parenthesized_expression "(puVar6[9] & 0x20)" ( (binary_expression "puVar6[9] & 0x20" (subscript_expression "puVar6[9]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(cVar19 = '\0', puVar49[9] != 0)" ( (comma_expression "cVar19 = '\0', puVar49[9] != 0" (assignment_expression "cVar19 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) , (binary_expression "puVar49[9] != 0" (subscript_expression "puVar49[9]" identifier [ number_literal ]) != number_literal)) ))) )) (goto_statement "goto LAB_000809a4;" goto statement_identifier ;)) (if_statement "if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;" if (parenthesized_expression "(((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0))))" ( (binary_expression "((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))" (parenthesized_expression "((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0))))" ( (binary_expression "(uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))" (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) || (parenthesized_expression "((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))" ( (parenthesized_expression "(((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0))" ( (binary_expression "((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)" (parenthesized_expression "((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc)))" ( (binary_expression "(*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))" (binary_expression "(*(byte *)((int)puVar49 + 0x37) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar49 + 0x37) & 0x20)" ( (binary_expression "*(byte *)((int)puVar49 + 0x37) & 0x20" (pointer_expression "*(byte *)((int)puVar49 + 0x37)" * (cast_expression "(byte *)((int)puVar49 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x37)" ( (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "(*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))" ( (binary_expression "*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc)" (pointer_expression "*(short *)((int)puVar6 + 0x2e)" * (cast_expression "(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) <= (pointer_expression "*(short *)(puVar49 + 0xc)" * (cast_expression "(short *)(puVar49 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0xc)" ( (binary_expression "puVar49 + 0xc" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)" ( (binary_expression "(*(ushort *)(pcVar39 + 0x2c) & 4) != 0" (parenthesized_expression "(*(ushort *)(pcVar39 + 0x2c) & 4)" ( (binary_expression "*(ushort *)(pcVar39 + 0x2c) & 4" (pointer_expression "*(ushort *)(pcVar39 + 0x2c)" * (cast_expression "(ushort *)(pcVar39 + 0x2c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x2c)" ( (binary_expression "pcVar39 + 0x2c" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) || (parenthesized_expression "((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))" ( (parenthesized_expression "(*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0))" ( (binary_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)" (binary_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x5dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x5dc8)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x5dc8" identifier + number_literal) )))) == number_literal) || (parenthesized_expression "((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20)" ( (binary_expression "*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20" (pointer_expression "*(ushort *)(**(int **)pcVar39 + 0x4c)" * (cast_expression "(ushort *)(**(int **)pcVar39 + 0x4c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)pcVar39 + 0x4c)" ( (binary_expression "**(int **)pcVar39 + 0x4c" (pointer_expression "**(int **)pcVar39" * (pointer_expression "*(int **)pcVar39" * (cast_expression "(int **)pcVar39" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00080a28;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x11)" ( (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(*(short *)((int)puVar6 + 0x2e) == 0)" ( (binary_expression "*(short *)((int)puVar6 + 0x2e) == 0" (pointer_expression "*(short *)((int)puVar6 + 0x2e)" * (cast_expression "(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "*(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;" (assignment_expression "*(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1" (pointer_expression "*(short *)(puVar32 + 5)" * (cast_expression "(short *)(puVar32 + 5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 5)" ( (binary_expression "puVar32 + 5" identifier + number_literal) )))) = (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1" (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17" (cast_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" ( (binary_expression "(*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)" (parenthesized_expression "(*(short *)(puVar49 + 0xc) * 0xf)" ( (binary_expression "*(short *)(puVar49 + 0xc) * 0xf" (pointer_expression "*(short *)(puVar49 + 0xc)" * (cast_expression "(short *)(puVar49 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0xc)" ( (binary_expression "puVar49 + 0xc" identifier + number_literal) )))) * number_literal) )) / (cast_expression "(int)*(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)puVar6 + 0x2e)" * (cast_expression "(short *)((int)puVar6 + 0x2e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x2e)" ( (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) + identifier) + number_literal)) ;) })))) (expression_statement "uVar25 = *(undefined4 *)(iVar21 + 0xc);" (assignment_expression "uVar25 = *(undefined4 *)(iVar21 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar21 + 0xc)" * (cast_expression "(undefined4 *)(iVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0xc)" ( (binary_expression "iVar21 + 0xc" identifier + number_literal) ))))) ;) })))) (expression_statement "puVar30 = puVar32;" (assignment_expression "puVar30 = puVar32" identifier = identifier) ;) (expression_statement "pcVar31 = pcVar44;" (assignment_expression "pcVar31 = pcVar44" identifier = identifier) ;) (expression_statement "(*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);" (call_expression "(*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14)" (parenthesized_expression "(*(code *)(puVar4 + -0x4dc4))" ( (pointer_expression "*(code *)(puVar4 + -0x4dc4)" * (cast_expression "(code *)(puVar4 + -0x4dc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x4dc4)" ( (binary_expression "puVar4 + -0x4dc4" identifier + number_literal) )))) )) (argument_list "(uVar25,iVar21 + 0x14)" ( identifier , (binary_expression "iVar21 + 0x14" identifier + number_literal) ))) ;) (expression_statement "iVar8 = (*pcVar9)(param_1,puVar32);" (assignment_expression "iVar8 = (*pcVar9)(param_1,puVar32)" identifier = (call_expression "(*pcVar9)(param_1,puVar32)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(param_1,puVar32)" ( identifier , identifier )))) ;) (expression_statement "*(short *)((int)puVar32 + 0x16) = sVar17;" (assignment_expression "*(short *)((int)puVar32 + 0x16) = sVar17" (pointer_expression "*(short *)((int)puVar32 + 0x16)" * (cast_expression "(short *)((int)puVar32 + 0x16)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + 0x16)" ( (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar8 != 0) goto LAB_00080a6c;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;)) (labeled_statement "LAB_00080a28:\n  pcVar31 = (char *)0x0;" statement_identifier : (expression_statement "pcVar31 = (char *)0x0;" (assignment_expression "pcVar31 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar30 = puVar49;" (assignment_expression "puVar30 = puVar49" identifier = identifier) ;) (expression_statement "iVar8 = FUN_0007dec0(param_1,iVar36);" (assignment_expression "iVar8 = FUN_0007dec0(param_1,iVar36)" identifier = (call_expression "FUN_0007dec0(param_1,iVar36)" identifier (argument_list "(param_1,iVar36)" ( identifier , identifier )))) ;) (if_statement "if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }" if (parenthesized_expression "(param_1[5] == 1)" ( (binary_expression "param_1[5] == 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    puVar6[9] = puVar6[9] | 0x100;\n  }" { (expression_statement "puVar6[9] = puVar6[9] | 0x100;" (assignment_expression "puVar6[9] = puVar6[9] | 0x100" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = (binary_expression "puVar6[9] | 0x100" (subscript_expression "puVar6[9]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;" if (parenthesized_expression "((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))" ( (binary_expression "(*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0)" (parenthesized_expression "(*(int *)(iVar36 + 0x44) != 0)" ( (binary_expression "*(int *)(iVar36 + 0x44) != 0" (pointer_expression "*(int *)(iVar36 + 0x44)" * (cast_expression "(int *)(iVar36 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x44)" ( (binary_expression "iVar36 + 0x44" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(puVar49 = (uint *)puVar49[5], iVar8 != 0)" ( (comma_expression "puVar49 = (uint *)puVar49[5], iVar8 != 0" (assignment_expression "puVar49 = (uint *)puVar49[5]" identifier = (cast_expression "(uint *)puVar49[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar49[5]" identifier [ number_literal ]))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;)) (labeled_statement "LAB_00080bf4:\n  cVar20 = cVar20 + '\x01';" statement_identifier : (expression_statement "cVar20 = cVar20 + '\x01';" (assignment_expression "cVar20 = cVar20 + '\x01'" identifier = (binary_expression "cVar20 + '\x01'" identifier + (char_literal "'\x01'" ' escape_sequence '))) ;)) (if_statement "if (puVar49 == (uint *)0x0) goto code_r0x00080c04;" if (parenthesized_expression "(puVar49 == (uint *)0x0)" ( (binary_expression "puVar49 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x00080c04;" goto statement_identifier ;)) (goto_statement "goto LAB_0008081c;" goto statement_identifier ;) (labeled_statement "LAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);" statement_identifier : (expression_statement "bVar18 = *(byte *)((int)puVar49 + 0x37);" (assignment_expression "bVar18 = *(byte *)((int)puVar49 + 0x37)" identifier = (pointer_expression "*(byte *)((int)puVar49 + 0x37)" * (cast_expression "(byte *)((int)puVar49 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar49 + 0x37)" ( (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }" if (parenthesized_expression "((bVar18 & 0xc0) == 0xc0)" ( (binary_expression "(bVar18 & 0xc0) == 0xc0" (parenthesized_expression "(bVar18 & 0xc0)" ( (binary_expression "bVar18 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }" { (expression_statement "puVar32[9] = 0x100;" (assignment_expression "puVar32[9] = 0x100" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar24 = cVar20 + 1;" (assignment_expression "bVar24 = cVar20 + 1" identifier = (binary_expression "cVar20 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00080c28;" goto statement_identifier ;) })) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto joined_r0x00080b94;" goto statement_identifier ;) (labeled_statement "code_r0x00080c04:\n  iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00080a6c;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier short) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier short) (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 (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (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 *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) + LIT) )))) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) == LIT) && (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & (subscript_expression IDENT [ LIT ])) )) == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression 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) )))) = 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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (for_statement for ( (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )))) & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (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 IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & (subscript_expression IDENT [ LIT ])) )) == LIT) && (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & (subscript_expression IDENT [ LIT ])) )) == LIT))) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 IDENT + LIT) )))) + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = 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 IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression IDENT << LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (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 IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT * LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ]))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression 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 (subscript_expression 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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) )))) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) )))) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) )))) = 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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression 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 (subscript_expression 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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) )))) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) )))) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) )))) = 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = 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 IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return LIT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (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 (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression * IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) != LIT) )) (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (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 <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (goto_statement goto statement_identifier ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & (subscript_expression IDENT [ LIT ])) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (char_literal ' escape_sequence '))) ;)) (labeled_statement statement_identifier : (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) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) )) / (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ))) + IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) )))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (char_literal ' escape_sequence ')) , (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) )) / (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ))) + IDENT) + LIT)) ;) })))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (char_literal ' escape_sequence '))) ;)) (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 ;) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int FUN_00080720(int *param_1,undefined4 param_2,uint *param_3,char *param_4)\n\n{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  code *pcVar9;\n  code *pcVar10;\n  byte bVar18;\n  char cVar19;\n  char cVar20;\n  code *pcVar11;\n  undefined2 uVar16;\n  short sVar17;\n  int *piVar12;\n  int iVar13;\n  uint uVar14;\n  ushort *puVar15;\n  int iVar21;\n  byte bVar24;\n  int *piVar22;\n  uint uVar23;\n  short sVar28;\n  undefined4 uVar25;\n  short *psVar26;\n  short *psVar27;\n  uint uVar29;\n  uint *puVar30;\n  char *pcVar31;\n  uint *puVar32;\n  uint uVar33;\n  ushort *puVar34;\n  int iVar35;\n  int iVar36;\n  int iVar37;\n  uint uVar38;\n  char *pcVar39;\n  char *pcVar40;\n  uint uVar41;\n  int iVar42;\n  char *pcVar43;\n  char *pcVar44;\n  undefined4 *puVar45;\n  ushort *puVar46;\n  char *unaff_s5;\n  undefined4 *unaff_s6;\n  int iVar47;\n  undefined *puVar48;\n  uint *puVar49;\n  int iStack_364;\n  undefined4 *puStack_360;\n  undefined4 uStack_35c;\n  int iStack_358;\n  ushort *puStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_348;\n  undefined4 uStack_344;\n  uint uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  ushort auStack_310 [4];\n  uint auStack_308 [12];\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  undefined4 uStack_2a0;\n  undefined4 *puStack_29c;\n  undefined1 uStack_298;\n  undefined4 uStack_294;\n  uint uStack_28c;\n  int iStack_104;\n  uint *puStack_100;\n  int iStack_fc;\n  char *pcStack_f8;\n  char *pcStack_f4;\n  int *piStack_f0;\n  char *pcStack_ec;\n  undefined4 *puStack_e8;\n  uint *puStack_e4;\n  uint *puStack_e0;\n  code *pcStack_dc;\n  uint *puStack_d0;\n  char *pcStack_cc;\n  short sStack_b2;\n  undefined2 local_7a;\n  uint uStack_78;\n  undefined2 *local_74;\n  short *local_70;\n  undefined4 *local_6c;\n  undefined4 local_64;\n  undefined2 local_48;\n  undefined2 local_46;\n  undefined2 local_44;\n  undefined1 local_42;\n  byte local_41;\n  short local_30;\n  undefined2 local_2e;\n  int *local_2c;\n  \n  puVar48 = PTR___stack_chk_guard_0015ba2c;\n  puVar32 = (uint *)param_1[3];\n  iVar21 = param_1[1];\n  pcVar39 = (char *)*param_1;\n  local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;\n  local_7a = 0xffff;\n  iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  puVar6 = *(undefined4 **)(iVar36 + 0x10);\n  puVar49 = *(uint **)(iVar36 + 0x44);\n  puVar30 = param_3;\n  pcVar31 = param_4;\n  if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }\n  if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }\n  if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }\n  puVar5 = PTR_LAB_0015b6d8;\n  puVar4 = PTR_LAB_0015b6c0;\n  cVar20 = '\0';\n  pcVar40 = pcVar39;\n  pcVar44 = pcVar43;\n  if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }\n  pcVar43 = unaff_s5;\n  iVar8 = 0;\nLAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }\n  pcVar9 = FUN_000810a8;\n  piVar22 = local_2c;\n  puVar48 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar48 + 0xda984);\n  puStack_e8 = unaff_s6;\n  puStack_e0 = puVar49;\n  piStack_f0 = param_1;\n  pcStack_dc = pcVar9;\n  puStack_e4 = puVar7;\n  pcStack_ec = pcVar43;\n  pcStack_f4 = pcVar44;\n  pcStack_f8 = pcVar40;\n  iStack_fc = iVar36;\n  puStack_100 = puVar32;\n  puVar6 = (undefined4 *)piVar22[1];\n  puVar32 = (uint *)piVar22[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  uVar29 = puVar6[5] + puVar6[3] * 0x30;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  uVar23 = puVar6[5];\n  iStack_104 = *piVar12;\n  pcStack_cc = pcVar31;\n  puStack_d0 = puVar30;\n  puVar30 = (uint *)(uint)(uVar23 < uVar29);\n  iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  iVar36 = *(int *)(iVar21 + 0x28);\n  if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }\n  iVar21 = iStack_104;\n  (**(code **)(puVar48 + 0xda968))();\n  iVar36 = *(int *)(iVar21 + 0x18);\n  iVar21 = FUN_0007bd64(0);\n  if (iVar21 != 0) {\n    return 0;\n  }\n  *(undefined1 *)puVar30 = 0x9e;\n  puVar30[7] = *(uint *)(iVar36 + 8);\n  uVar23 = *(uint *)(iVar36 + 0xc);\n  puVar30[0xc] = 0;\n  puVar30[8] = uVar23;\n  return 1;\ncode_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;\n  puVar32[8] = 0;\n  puVar32[10] = 0x10000;\n  *(char **)puVar32[0xc] = pcVar44;\n  *(short *)((int)puVar32 + 0x12) = sStack_b2;\n  if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }\n  if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }\n  *(undefined2 *)((int)puVar32 + 0x16) = 0x2b;\n  uVar16 = (*pcVar11)(puVar7,0x2b);\n  *(undefined2 *)(puVar32 + 5) = uVar16;\n  puVar32[9] = 0x4000;\n  *puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;\n  puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  if (iVar8 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\n  while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }\n  pcVar40 = pcVar40 + 1;\n  iVar8 = *piVar22;\nLAB_00080938:\n  iVar37 = iVar37 + 1;\n  piVar12 = piVar12 + 5;\n  if (iVar8 <= iVar37) goto code_r0x00080948;\n  goto LAB_000808d4;\nLAB_00080b5c:\n  psVar26 = psVar26 + 1;\n  if (psVar27 == psVar26) goto LAB_00080938;\n  if (iVar13 == *psVar26) goto LAB_00080b70;\n  goto LAB_00080b5c;\ncode_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\nLAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  puVar30 = puVar32;\n  pcVar31 = pcVar44;\n  (*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  *(short *)((int)puVar32 + 0x16) = sVar17;\n  if (iVar8 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pcVar31 = (char *)0x0;\n  param_1[5] = 0;\n  puVar30 = puVar49;\n  iVar8 = FUN_0007dec0(param_1,iVar36);\n  if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }\n  if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar20 = cVar20 + '\x01';\n  if (puVar49 == (uint *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar8 = 0;\n  goto LAB_00080a6c;\n}" (primitive_type "int") (function_declarator "FUN_00080720(int *param_1,undefined4 param_2,uint *param_3,char *param_4)" (identifier "FUN_00080720") (parameter_list "(int *param_1,undefined4 param_2,uint *param_3,char *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "char *param_4" (primitive_type "char") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  ushort uVar1;\n  ushort uVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  code *pcVar9;\n  code *pcVar10;\n  byte bVar18;\n  char cVar19;\n  char cVar20;\n  code *pcVar11;\n  undefined2 uVar16;\n  short sVar17;\n  int *piVar12;\n  int iVar13;\n  uint uVar14;\n  ushort *puVar15;\n  int iVar21;\n  byte bVar24;\n  int *piVar22;\n  uint uVar23;\n  short sVar28;\n  undefined4 uVar25;\n  short *psVar26;\n  short *psVar27;\n  uint uVar29;\n  uint *puVar30;\n  char *pcVar31;\n  uint *puVar32;\n  uint uVar33;\n  ushort *puVar34;\n  int iVar35;\n  int iVar36;\n  int iVar37;\n  uint uVar38;\n  char *pcVar39;\n  char *pcVar40;\n  uint uVar41;\n  int iVar42;\n  char *pcVar43;\n  char *pcVar44;\n  undefined4 *puVar45;\n  ushort *puVar46;\n  char *unaff_s5;\n  undefined4 *unaff_s6;\n  int iVar47;\n  undefined *puVar48;\n  uint *puVar49;\n  int iStack_364;\n  undefined4 *puStack_360;\n  undefined4 uStack_35c;\n  int iStack_358;\n  ushort *puStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_348;\n  undefined4 uStack_344;\n  uint uStack_340;\n  undefined4 uStack_33c;\n  undefined4 uStack_338;\n  undefined4 uStack_334;\n  undefined4 uStack_330;\n  undefined4 uStack_32c;\n  undefined4 uStack_328;\n  undefined4 uStack_324;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  ushort auStack_310 [4];\n  uint auStack_308 [12];\n  ushort auStack_2d8 [4];\n  uint auStack_2d0 [2];\n  ushort auStack_2c8 [20];\n  undefined4 uStack_2a0;\n  undefined4 *puStack_29c;\n  undefined1 uStack_298;\n  undefined4 uStack_294;\n  uint uStack_28c;\n  int iStack_104;\n  uint *puStack_100;\n  int iStack_fc;\n  char *pcStack_f8;\n  char *pcStack_f4;\n  int *piStack_f0;\n  char *pcStack_ec;\n  undefined4 *puStack_e8;\n  uint *puStack_e4;\n  uint *puStack_e0;\n  code *pcStack_dc;\n  uint *puStack_d0;\n  char *pcStack_cc;\n  short sStack_b2;\n  undefined2 local_7a;\n  uint uStack_78;\n  undefined2 *local_74;\n  short *local_70;\n  undefined4 *local_6c;\n  undefined4 local_64;\n  undefined2 local_48;\n  undefined2 local_46;\n  undefined2 local_44;\n  undefined1 local_42;\n  byte local_41;\n  short local_30;\n  undefined2 local_2e;\n  int *local_2c;\n  \n  puVar48 = PTR___stack_chk_guard_0015ba2c;\n  puVar32 = (uint *)param_1[3];\n  iVar21 = param_1[1];\n  pcVar39 = (char *)*param_1;\n  local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;\n  local_7a = 0xffff;\n  iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  puVar6 = *(undefined4 **)(iVar36 + 0x10);\n  puVar49 = *(uint **)(iVar36 + 0x44);\n  puVar30 = param_3;\n  pcVar31 = param_4;\n  if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }\n  if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }\n  if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }\n  puVar5 = PTR_LAB_0015b6d8;\n  puVar4 = PTR_LAB_0015b6c0;\n  cVar20 = '\0';\n  pcVar40 = pcVar39;\n  pcVar44 = pcVar43;\n  if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }\n  pcVar43 = unaff_s5;\n  iVar8 = 0;\nLAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }\n  pcVar9 = FUN_000810a8;\n  piVar22 = local_2c;\n  puVar48 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar48 + 0xda984);\n  puStack_e8 = unaff_s6;\n  puStack_e0 = puVar49;\n  piStack_f0 = param_1;\n  pcStack_dc = pcVar9;\n  puStack_e4 = puVar7;\n  pcStack_ec = pcVar43;\n  pcStack_f4 = pcVar44;\n  pcStack_f8 = pcVar40;\n  iStack_fc = iVar36;\n  puStack_100 = puVar32;\n  puVar6 = (undefined4 *)piVar22[1];\n  puVar32 = (uint *)piVar22[3];\n  uStack_348 = 0;\n  uStack_344 = 0;\n  uStack_340 = 0;\n  uStack_33c = 0;\n  uStack_338 = 0;\n  uStack_334 = 0;\n  uStack_330 = 0;\n  uVar29 = puVar6[5] + puVar6[3] * 0x30;\n  uStack_32c = 0;\n  uStack_328 = 0;\n  uStack_324 = 0;\n  uStack_320 = 0;\n  uStack_31c = 0;\n  uStack_318 = 0;\n  uStack_314 = 0;\n  uVar23 = puVar6[5];\n  iStack_104 = *piVar12;\n  pcStack_cc = pcVar31;\n  puStack_d0 = puVar30;\n  puVar30 = (uint *)(uint)(uVar23 < uVar29);\n  iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;\n  iVar36 = *(int *)(iVar21 + 0x28);\n  if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }\nLAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }\n  iVar21 = iStack_104;\n  (**(code **)(puVar48 + 0xda968))();\n  iVar36 = *(int *)(iVar21 + 0x18);\n  iVar21 = FUN_0007bd64(0);\n  if (iVar21 != 0) {\n    return 0;\n  }\n  *(undefined1 *)puVar30 = 0x9e;\n  puVar30[7] = *(uint *)(iVar36 + 8);\n  uVar23 = *(uint *)(iVar36 + 0xc);\n  puVar30[0xc] = 0;\n  puVar30[8] = uVar23;\n  return 1;\ncode_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;\n  puVar32[8] = 0;\n  puVar32[10] = 0x10000;\n  *(char **)puVar32[0xc] = pcVar44;\n  *(short *)((int)puVar32 + 0x12) = sStack_b2;\n  if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }\n  if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }\n  *(undefined2 *)((int)puVar32 + 0x16) = 0x2b;\n  uVar16 = (*pcVar11)(puVar7,0x2b);\n  *(undefined2 *)(puVar32 + 5) = uVar16;\n  puVar32[9] = 0x4000;\n  *puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;\n  puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  if (iVar8 != 0) goto LAB_00080a6c;\n  goto LAB_00080e28;\n  while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }\n  pcVar40 = pcVar40 + 1;\n  iVar8 = *piVar22;\nLAB_00080938:\n  iVar37 = iVar37 + 1;\n  piVar12 = piVar12 + 5;\n  if (iVar8 <= iVar37) goto code_r0x00080948;\n  goto LAB_000808d4;\nLAB_00080b5c:\n  psVar26 = psVar26 + 1;\n  if (psVar27 == psVar26) goto LAB_00080938;\n  if (iVar13 == *psVar26) goto LAB_00080b70;\n  goto LAB_00080b5c;\ncode_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\nLAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  puVar30 = puVar32;\n  pcVar31 = pcVar44;\n  (*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);\n  iVar8 = (*pcVar9)(param_1,puVar32);\n  *(short *)((int)puVar32 + 0x16) = sVar17;\n  if (iVar8 != 0) goto LAB_00080a6c;\nLAB_00080a28:\n  pcVar31 = (char *)0x0;\n  param_1[5] = 0;\n  puVar30 = puVar49;\n  iVar8 = FUN_0007dec0(param_1,iVar36);\n  if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }\n  if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;\nLAB_00080bf4:\n  cVar20 = cVar20 + '\x01';\n  if (puVar49 == (uint *)0x0) goto code_r0x00080c04;\n  goto LAB_0008081c;\nLAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }\n  bVar3 = true;\n  goto joined_r0x00080b94;\ncode_r0x00080c04:\n  iVar8 = 0;\n  goto LAB_00080a6c;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "code *pcVar9;" (type_identifier "code") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "char cVar19;" (primitive_type "char") (identifier "cVar19") (; ";")) (declaration "char cVar20;" (primitive_type "char") (identifier "cVar20") (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined2 uVar16;" (type_identifier "undefined2") (identifier "uVar16") (; ";")) (declaration "short sVar17;" (sized_type_specifier "short" (short "short")) (identifier "sVar17") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "ushort *puVar15;" (type_identifier "ushort") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "byte bVar24;" (type_identifier "byte") (identifier "bVar24") (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "short sVar28;" (sized_type_specifier "short" (short "short")) (identifier "sVar28") (; ";")) (declaration "undefined4 uVar25;" (type_identifier "undefined4") (identifier "uVar25") (; ";")) (declaration "short *psVar26;" (sized_type_specifier "short" (short "short")) (pointer_declarator "*psVar26" (* "*") (identifier "psVar26")) (; ";")) (declaration "short *psVar27;" (sized_type_specifier "short" (short "short")) (pointer_declarator "*psVar27" (* "*") (identifier "psVar27")) (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "uint *puVar30;" (type_identifier "uint") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "char *pcVar31;" (primitive_type "char") (pointer_declarator "*pcVar31" (* "*") (identifier "pcVar31")) (; ";")) (declaration "uint *puVar32;" (type_identifier "uint") (pointer_declarator "*puVar32" (* "*") (identifier "puVar32")) (; ";")) (declaration "uint uVar33;" (type_identifier "uint") (identifier "uVar33") (; ";")) (declaration "ushort *puVar34;" (type_identifier "ushort") (pointer_declarator "*puVar34" (* "*") (identifier "puVar34")) (; ";")) (declaration "int iVar35;" (primitive_type "int") (identifier "iVar35") (; ";")) (declaration "int iVar36;" (primitive_type "int") (identifier "iVar36") (; ";")) (declaration "int iVar37;" (primitive_type "int") (identifier "iVar37") (; ";")) (declaration "uint uVar38;" (type_identifier "uint") (identifier "uVar38") (; ";")) (declaration "char *pcVar39;" (primitive_type "char") (pointer_declarator "*pcVar39" (* "*") (identifier "pcVar39")) (; ";")) (declaration "char *pcVar40;" (primitive_type "char") (pointer_declarator "*pcVar40" (* "*") (identifier "pcVar40")) (; ";")) (declaration "uint uVar41;" (type_identifier "uint") (identifier "uVar41") (; ";")) (declaration "int iVar42;" (primitive_type "int") (identifier "iVar42") (; ";")) (declaration "char *pcVar43;" (primitive_type "char") (pointer_declarator "*pcVar43" (* "*") (identifier "pcVar43")) (; ";")) (declaration "char *pcVar44;" (primitive_type "char") (pointer_declarator "*pcVar44" (* "*") (identifier "pcVar44")) (; ";")) (declaration "undefined4 *puVar45;" (type_identifier "undefined4") (pointer_declarator "*puVar45" (* "*") (identifier "puVar45")) (; ";")) (declaration "ushort *puVar46;" (type_identifier "ushort") (pointer_declarator "*puVar46" (* "*") (identifier "puVar46")) (; ";")) (declaration "char *unaff_s5;" (primitive_type "char") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined4 *unaff_s6;" (type_identifier "undefined4") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "int iVar47;" (primitive_type "int") (identifier "iVar47") (; ";")) (declaration "undefined *puVar48;" (type_identifier "undefined") (pointer_declarator "*puVar48" (* "*") (identifier "puVar48")) (; ";")) (declaration "uint *puVar49;" (type_identifier "uint") (pointer_declarator "*puVar49" (* "*") (identifier "puVar49")) (; ";")) (declaration "int iStack_364;" (primitive_type "int") (identifier "iStack_364") (; ";")) (declaration "undefined4 *puStack_360;" (type_identifier "undefined4") (pointer_declarator "*puStack_360" (* "*") (identifier "puStack_360")) (; ";")) (declaration "undefined4 uStack_35c;" (type_identifier "undefined4") (identifier "uStack_35c") (; ";")) (declaration "int iStack_358;" (primitive_type "int") (identifier "iStack_358") (; ";")) (declaration "ushort *puStack_354;" (type_identifier "ushort") (pointer_declarator "*puStack_354" (* "*") (identifier "puStack_354")) (; ";")) (declaration "int iStack_350;" (primitive_type "int") (identifier "iStack_350") (; ";")) (declaration "int iStack_34c;" (primitive_type "int") (identifier "iStack_34c") (; ";")) (declaration "uint uStack_348;" (type_identifier "uint") (identifier "uStack_348") (; ";")) (declaration "undefined4 uStack_344;" (type_identifier "undefined4") (identifier "uStack_344") (; ";")) (declaration "uint uStack_340;" (type_identifier "uint") (identifier "uStack_340") (; ";")) (declaration "undefined4 uStack_33c;" (type_identifier "undefined4") (identifier "uStack_33c") (; ";")) (declaration "undefined4 uStack_338;" (type_identifier "undefined4") (identifier "uStack_338") (; ";")) (declaration "undefined4 uStack_334;" (type_identifier "undefined4") (identifier "uStack_334") (; ";")) (declaration "undefined4 uStack_330;" (type_identifier "undefined4") (identifier "uStack_330") (; ";")) (declaration "undefined4 uStack_32c;" (type_identifier "undefined4") (identifier "uStack_32c") (; ";")) (declaration "undefined4 uStack_328;" (type_identifier "undefined4") (identifier "uStack_328") (; ";")) (declaration "undefined4 uStack_324;" (type_identifier "undefined4") (identifier "uStack_324") (; ";")) (declaration "undefined4 uStack_320;" (type_identifier "undefined4") (identifier "uStack_320") (; ";")) (declaration "undefined4 uStack_31c;" (type_identifier "undefined4") (identifier "uStack_31c") (; ";")) (declaration "undefined4 uStack_318;" (type_identifier "undefined4") (identifier "uStack_318") (; ";")) (declaration "undefined4 uStack_314;" (type_identifier "undefined4") (identifier "uStack_314") (; ";")) (declaration "ushort auStack_310 [4];" (type_identifier "ushort") (array_declarator "auStack_310 [4]" (identifier "auStack_310") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint auStack_308 [12];" (type_identifier "uint") (array_declarator "auStack_308 [12]" (identifier "auStack_308") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "ushort auStack_2d8 [4];" (type_identifier "ushort") (array_declarator "auStack_2d8 [4]" (identifier "auStack_2d8") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint auStack_2d0 [2];" (type_identifier "uint") (array_declarator "auStack_2d0 [2]" (identifier "auStack_2d0") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "ushort auStack_2c8 [20];" (type_identifier "ushort") (array_declarator "auStack_2c8 [20]" (identifier "auStack_2c8") ([ "[") (number_literal "20") (] "]")) (; ";")) (declaration "undefined4 uStack_2a0;" (type_identifier "undefined4") (identifier "uStack_2a0") (; ";")) (declaration "undefined4 *puStack_29c;" (type_identifier "undefined4") (pointer_declarator "*puStack_29c" (* "*") (identifier "puStack_29c")) (; ";")) (declaration "undefined1 uStack_298;" (type_identifier "undefined1") (identifier "uStack_298") (; ";")) (declaration "undefined4 uStack_294;" (type_identifier "undefined4") (identifier "uStack_294") (; ";")) (declaration "uint uStack_28c;" (type_identifier "uint") (identifier "uStack_28c") (; ";")) (declaration "int iStack_104;" (primitive_type "int") (identifier "iStack_104") (; ";")) (declaration "uint *puStack_100;" (type_identifier "uint") (pointer_declarator "*puStack_100" (* "*") (identifier "puStack_100")) (; ";")) (declaration "int iStack_fc;" (primitive_type "int") (identifier "iStack_fc") (; ";")) (declaration "char *pcStack_f8;" (primitive_type "char") (pointer_declarator "*pcStack_f8" (* "*") (identifier "pcStack_f8")) (; ";")) (declaration "char *pcStack_f4;" (primitive_type "char") (pointer_declarator "*pcStack_f4" (* "*") (identifier "pcStack_f4")) (; ";")) (declaration "int *piStack_f0;" (primitive_type "int") (pointer_declarator "*piStack_f0" (* "*") (identifier "piStack_f0")) (; ";")) (declaration "char *pcStack_ec;" (primitive_type "char") (pointer_declarator "*pcStack_ec" (* "*") (identifier "pcStack_ec")) (; ";")) (declaration "undefined4 *puStack_e8;" (type_identifier "undefined4") (pointer_declarator "*puStack_e8" (* "*") (identifier "puStack_e8")) (; ";")) (declaration "uint *puStack_e4;" (type_identifier "uint") (pointer_declarator "*puStack_e4" (* "*") (identifier "puStack_e4")) (; ";")) (declaration "uint *puStack_e0;" (type_identifier "uint") (pointer_declarator "*puStack_e0" (* "*") (identifier "puStack_e0")) (; ";")) (declaration "code *pcStack_dc;" (type_identifier "code") (pointer_declarator "*pcStack_dc" (* "*") (identifier "pcStack_dc")) (; ";")) (declaration "uint *puStack_d0;" (type_identifier "uint") (pointer_declarator "*puStack_d0" (* "*") (identifier "puStack_d0")) (; ";")) (declaration "char *pcStack_cc;" (primitive_type "char") (pointer_declarator "*pcStack_cc" (* "*") (identifier "pcStack_cc")) (; ";")) (declaration "short sStack_b2;" (sized_type_specifier "short" (short "short")) (identifier "sStack_b2") (; ";")) (declaration "undefined2 local_7a;" (type_identifier "undefined2") (identifier "local_7a") (; ";")) (declaration "uint uStack_78;" (type_identifier "uint") (identifier "uStack_78") (; ";")) (declaration "undefined2 *local_74;" (type_identifier "undefined2") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "short *local_70;" (sized_type_specifier "short" (short "short")) (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "undefined4 *local_6c;" (type_identifier "undefined4") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "undefined2 local_48;" (type_identifier "undefined2") (identifier "local_48") (; ";")) (declaration "undefined2 local_46;" (type_identifier "undefined2") (identifier "local_46") (; ";")) (declaration "undefined2 local_44;" (type_identifier "undefined2") (identifier "local_44") (; ";")) (declaration "undefined1 local_42;" (type_identifier "undefined1") (identifier "local_42") (; ";")) (declaration "byte local_41;" (type_identifier "byte") (identifier "local_41") (; ";")) (declaration "short local_30;" (sized_type_specifier "short" (short "short")) (identifier "local_30") (; ";")) (declaration "undefined2 local_2e;" (type_identifier "undefined2") (identifier "local_2e") (; ";")) (declaration "int *local_2c;" (primitive_type "int") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar48 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar48 = PTR___stack_chk_guard_0015ba2c" (identifier "puVar48") (= "=") (identifier "PTR___stack_chk_guard_0015ba2c")) (; ";")) (expression_statement "puVar32 = (uint *)param_1[3];" (assignment_expression "puVar32 = (uint *)param_1[3]" (identifier "puVar32") (= "=") (cast_expression "(uint *)param_1[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar21 = param_1[1];" (assignment_expression "iVar21 = param_1[1]" (identifier "iVar21") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar39 = (char *)*param_1;" (assignment_expression "pcVar39 = (char *)*param_1" (identifier "pcVar39") (= "=") (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int **)PTR___stack_chk_guard_0015ba2c" (identifier "local_2c") (= "=") (pointer_expression "*(int **)PTR___stack_chk_guard_0015ba2c" (* "*") (cast_expression "(int **)PTR___stack_chk_guard_0015ba2c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0015ba2c")))) (; ";")) (expression_statement "local_7a = 0xffff;" (assignment_expression "local_7a = 0xffff" (identifier "local_7a") (= "=") (number_literal "0xffff")) (; ";")) (expression_statement "iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;" (assignment_expression "iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" (identifier "iVar36") (= "=") (binary_expression "*(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "*(int *)(pcVar39 + 4) + 8" (pointer_expression "*(int *)(pcVar39 + 4)" (* "*") (cast_expression "(int *)(pcVar39 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar39 + 4)" (( "(") (binary_expression "pcVar39 + 4" (identifier "pcVar39") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) (+ "+") (binary_expression "(uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "(uint)*(byte *)(puVar32 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(puVar32 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 4)" (( "(") (binary_expression "puVar32 + 4" (identifier "puVar32") (+ "+") (number_literal "4")) () ")")))) (* "*") (number_literal "0x48")))) (; ";")) (expression_statement "puVar6 = *(undefined4 **)(iVar36 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(iVar36 + 0x10)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(iVar36 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar36 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar36 + 0x10)" (( "(") (binary_expression "iVar36 + 0x10" (identifier "iVar36") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar49 = *(uint **)(iVar36 + 0x44);" (assignment_expression "puVar49 = *(uint **)(iVar36 + 0x44)" (identifier "puVar49") (= "=") (pointer_expression "*(uint **)(iVar36 + 0x44)" (* "*") (cast_expression "(uint **)(iVar36 + 0x44)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar36 + 0x44)" (( "(") (binary_expression "iVar36 + 0x44" (identifier "iVar36") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "puVar30 = param_3;" (assignment_expression "puVar30 = param_3" (identifier "puVar30") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcVar31 = param_4;" (assignment_expression "pcVar31 = param_4" (identifier "pcVar31") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (puVar49 == (uint *)0x0) {\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }\n  else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }" (if "if") (parenthesized_expression "(puVar49 == (uint *)0x0)" (( "(") (binary_expression "puVar49 == (uint *)0x0" (identifier "puVar49") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }\n  }" ({ "{") (if_statement "if ((puVar6[9] & 0x20) == 0) {\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }\n    else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }" (if "if") (parenthesized_expression "((puVar6[9] & 0x20) == 0)" (( "(") (binary_expression "(puVar6[9] & 0x20) == 0" (parenthesized_expression "(puVar6[9] & 0x20)" (( "(") (binary_expression "puVar6[9] & 0x20" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar49 = &uStack_78;\n      puVar30 = (uint *)0x48;\n      (*(code *)PTR_memset_0015b9b4)(puVar49,0);\n      local_46 = 1;\n      local_44 = 1;\n      local_6c = puVar6;\n      local_42 = 5;\n      local_2e = 0;\n      local_41 = local_41 & 0x3f | 0xc0;\n      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);\n      local_74 = &local_7a;\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n      local_70 = &local_30;\n      local_30 = *(short *)(puVar6 + 0xb);\n      if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }\n    }" ({ "{") (expression_statement "puVar49 = &uStack_78;" (assignment_expression "puVar49 = &uStack_78" (identifier "puVar49") (= "=") (pointer_expression "&uStack_78" (& "&") (identifier "uStack_78"))) (; ";")) (expression_statement "puVar30 = (uint *)0x48;" (assignment_expression "puVar30 = (uint *)0x48" (identifier "puVar30") (= "=") (cast_expression "(uint *)0x48" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x48"))) (; ";")) (expression_statement "(*(code *)PTR_memset_0015b9b4)(puVar49,0);" (call_expression "(*(code *)PTR_memset_0015b9b4)(puVar49,0)" (parenthesized_expression "(*(code *)PTR_memset_0015b9b4)" (( "(") (pointer_expression "*(code *)PTR_memset_0015b9b4" (* "*") (cast_expression "(code *)PTR_memset_0015b9b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_0015b9b4"))) () ")")) (argument_list "(puVar49,0)" (( "(") (identifier "puVar49") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_46 = 1;" (assignment_expression "local_46 = 1" (identifier "local_46") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_44 = 1;" (assignment_expression "local_44 = 1" (identifier "local_44") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_6c = puVar6;" (assignment_expression "local_6c = puVar6" (identifier "local_6c") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "local_42 = 5;" (assignment_expression "local_42 = 5" (identifier "local_42") (= "=") (number_literal "5")) (; ";")) (expression_statement "local_2e = 0;" (assignment_expression "local_2e = 0" (identifier "local_2e") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_41 = local_41 & 0x3f | 0xc0;" (assignment_expression "local_41 = local_41 & 0x3f | 0xc0" (identifier "local_41") (= "=") (binary_expression "local_41 & 0x3f | 0xc0" (binary_expression "local_41 & 0x3f" (identifier "local_41") (& "&") (number_literal "0x3f")) (| "|") (number_literal "0xc0"))) (; ";")) (expression_statement "local_48 = *(undefined2 *)((int)puVar6 + 0x2e);" (assignment_expression "local_48 = *(undefined2 *)((int)puVar6 + 0x2e)" (identifier "local_48") (= "=") (pointer_expression "*(undefined2 *)((int)puVar6 + 0x2e)" (* "*") (cast_expression "(undefined2 *)((int)puVar6 + 0x2e)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x2e)" (( "(") (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x2e")) () ")"))))) (; ";")) (expression_statement "local_74 = &local_7a;" (assignment_expression "local_74 = &local_7a" (identifier "local_74") (= "=") (pointer_expression "&local_7a" (& "&") (identifier "local_7a"))) (; ";")) (expression_statement "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);" (assignment_expression "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb)" (identifier "pcVar43") (= "=") (cast_expression "(char *)(int)*(short *)(puVar6 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*(short *)(puVar6 + 0xb)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(puVar6 + 0xb)" (* "*") (cast_expression "(short *)(puVar6 + 0xb)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xb)" (( "(") (binary_expression "puVar6 + 0xb" (identifier "puVar6") (+ "+") (number_literal "0xb")) () ")"))))))) (; ";")) (expression_statement "local_70 = &local_30;" (assignment_expression "local_70 = &local_30" (identifier "local_70") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (expression_statement "local_30 = *(short *)(puVar6 + 0xb);" (assignment_expression "local_30 = *(short *)(puVar6 + 0xb)" (identifier "local_30") (= "=") (pointer_expression "*(short *)(puVar6 + 0xb)" (* "*") (cast_expression "(short *)(puVar6 + 0xb)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xb)" (( "(") (binary_expression "puVar6 + 0xb" (identifier "puVar6") (+ "+") (number_literal "0xb")) () ")"))))) (; ";")) (if_statement "if (-1 < *(char *)(iVar36 + 0x25)) {\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }" (if "if") (parenthesized_expression "(-1 < *(char *)(iVar36 + 0x25))" (( "(") (binary_expression "-1 < *(char *)(iVar36 + 0x25)" (number_literal "-1") (< "<") (pointer_expression "*(char *)(iVar36 + 0x25)" (* "*") (cast_expression "(char *)(iVar36 + 0x25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x25)" (( "(") (binary_expression "iVar36 + 0x25" (identifier "iVar36") (+ "+") (number_literal "0x25")) () ")"))))) () ")")) (compound_statement "{\n        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);\n      }" ({ "{") (expression_statement "local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);" (assignment_expression "local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8)" (identifier "local_64") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(iVar36 + 0x10) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar36 + 0x10) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar36 + 0x10) + 8)" (( "(") (binary_expression "*(int *)(iVar36 + 0x10) + 8" (pointer_expression "*(int *)(iVar36 + 0x10)" (* "*") (cast_expression "(int *)(iVar36 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x10)" (( "(") (binary_expression "iVar36 + 0x10" (identifier "iVar36") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }" (else "else") (compound_statement "{\n      puVar49 = (uint *)puVar6[2];\n      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n    }" ({ "{") (expression_statement "puVar49 = (uint *)puVar6[2];" (assignment_expression "puVar49 = (uint *)puVar6[2]" (identifier "puVar49") (= "=") (cast_expression "(uint *)puVar6[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);" (assignment_expression "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb)" (identifier "pcVar43") (= "=") (cast_expression "(char *)(int)*(short *)(puVar6 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*(short *)(puVar6 + 0xb)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(puVar6 + 0xb)" (* "*") (cast_expression "(short *)(puVar6 + 0xb)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xb)" (( "(") (binary_expression "puVar6 + 0xb" (identifier "puVar6") (+ "+") (number_literal "0xb")) () ")"))))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }" (else "else") (compound_statement "{\n    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);\n  }" ({ "{") (expression_statement "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);" (assignment_expression "pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb)" (identifier "pcVar43") (= "=") (cast_expression "(char *)(int)*(short *)(puVar6 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*(short *)(puVar6 + 0xb)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(puVar6 + 0xb)" (* "*") (cast_expression "(short *)(puVar6 + 0xb)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xb)" (( "(") (binary_expression "puVar6 + 0xb" (identifier "puVar6") (+ "+") (number_literal "0xb")) () ")"))))))) (; ";")) (} "}")))) (if_statement "if ((int)pcVar43 < 0xb) {\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }\n  else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }" (if "if") (parenthesized_expression "((int)pcVar43 < 0xb)" (( "(") (binary_expression "(int)pcVar43 < 0xb" (cast_expression "(int)pcVar43" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar43")) (< "<") (number_literal "0xb")) () ")")) (compound_statement "{\n    iVar8 = param_1[4];\n    puVar7 = (uint *)0x0;\n  }" ({ "{") (expression_statement "iVar8 = param_1[4];" (assignment_expression "iVar8 = param_1[4]" (identifier "iVar8") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar7 = (uint *)0x0;" (assignment_expression "puVar7 = (uint *)0x0" (identifier "puVar7") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }" (else "else") (compound_statement "{\n    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);\n    iVar8 = param_1[4];\n  }" ({ "{") (expression_statement "puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);" (assignment_expression "puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + 0x5c64)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b6c0 + 0x5c64)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6c0 + 0x5c64)" (( "(") (binary_expression "PTR_LAB_0015b6c0 + 0x5c64" (identifier "PTR_LAB_0015b6c0") (+ "+") (number_literal "0x5c64")) () ")")))) () ")")) (argument_list "(pcVar43)" (( "(") (identifier "pcVar43") () ")"))))) (; ";")) (expression_statement "iVar8 = param_1[4];" (assignment_expression "iVar8 = param_1[4]" (identifier "iVar8") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (} "}")))) (if_statement "if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }" (if "if") (parenthesized_expression "((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0))" (( "(") (binary_expression "(((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)" (parenthesized_expression "(((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0))" (( "(") (binary_expression "((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&\n      ((puVar6[9] & 0x20) == 0)" (parenthesized_expression "((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25)))))" (( "(") (binary_expression "(((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&\n       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))" (parenthesized_expression "(((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0))" (( "(") (binary_expression "((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&\n        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)" (parenthesized_expression "((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0))" (( "(") (binary_expression "(iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)" (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)" (( "(") (binary_expression "(*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(pcVar39 + 0x2c) & 0x20)" (( "(") (binary_expression "*(ushort *)(pcVar39 + 0x2c) & 0x20" (pointer_expression "*(ushort *)(pcVar39 + 0x2c)" (* "*") (cast_expression "(ushort *)(pcVar39 + 0x2c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar39 + 0x2c)" (( "(") (binary_expression "pcVar39 + 0x2c" (identifier "pcVar39") (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)" (( "(") (binary_expression "(*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0" (parenthesized_expression "(*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000)" (( "(") (binary_expression "*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000" (pointer_expression "*(uint *)(**(int **)pcVar39 + 0x24)" (* "*") (cast_expression "(uint *)(**(int **)pcVar39 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)pcVar39 + 0x24)" (( "(") (binary_expression "**(int **)pcVar39 + 0x24" (pointer_expression "**(int **)pcVar39" (* "*") (pointer_expression "*(int **)pcVar39" (* "*") (cast_expression "(int **)pcVar39" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar39")))) (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x8000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))" (( "(") (parenthesized_expression "(*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25)))" (( "(") (binary_expression "*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))" (binary_expression "*(int *)(iVar36 + 0x44) == 0" (pointer_expression "*(int *)(iVar36 + 0x44)" (* "*") (cast_expression "(int *)(iVar36 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x44)" (( "(") (binary_expression "iVar36 + 0x44" (identifier "iVar36") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(-1 < *(char *)(iVar36 + 0x25))" (( "(") (binary_expression "-1 < *(char *)(iVar36 + 0x25)" (number_literal "-1") (< "<") (pointer_expression "*(char *)(iVar36 + 0x25)" (* "*") (cast_expression "(char *)(iVar36 + 0x25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x25)" (( "(") (binary_expression "iVar36 + 0x25" (identifier "iVar36") (+ "+") (number_literal "0x25")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((puVar6[9] & 0x20) == 0)" (( "(") (binary_expression "(puVar6[9] & 0x20) == 0" (parenthesized_expression "(puVar6[9] & 0x20)" (( "(") (binary_expression "puVar6[9] & 0x20" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)" (( "(") (binary_expression "(*(uint *)(iVar36 + 0x24) & 0x140000) == 0" (parenthesized_expression "(*(uint *)(iVar36 + 0x24) & 0x140000)" (( "(") (binary_expression "*(uint *)(iVar36 + 0x24) & 0x140000" (pointer_expression "*(uint *)(iVar36 + 0x24)" (* "*") (cast_expression "(uint *)(iVar36 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x24)" (( "(") (binary_expression "iVar36 + 0x24" (identifier "iVar36") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x140000")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    sStack_b2 = (short)puVar7 + (short)pcVar43;\n    pcVar44 = *(char **)(iVar21 + 0x14);\n    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);\n    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);\n    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    unaff_s5 = pcVar44;\nLAB_00080e28:\n    pcVar43 = pcVar44;\n    pcVar44 = unaff_s5;\n    unaff_s6 = puVar6;\n    if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }\n  }" ({ "{") (expression_statement "sStack_b2 = (short)puVar7 + (short)pcVar43;" (assignment_expression "sStack_b2 = (short)puVar7 + (short)pcVar43" (identifier "sStack_b2") (= "=") (binary_expression "(short)puVar7 + (short)pcVar43" (cast_expression "(short)puVar7" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "puVar7")) (+ "+") (cast_expression "(short)pcVar43" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "pcVar43")))) (; ";")) (expression_statement "pcVar44 = *(char **)(iVar21 + 0x14);" (assignment_expression "pcVar44 = *(char **)(iVar21 + 0x14)" (identifier "pcVar44") (= "=") (pointer_expression "*(char **)(iVar21 + 0x14)" (* "*") (cast_expression "(char **)(iVar21 + 0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + 0x14)" (( "(") (binary_expression "iVar21 + 0x14" (identifier "iVar21") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530)" (identifier "pcVar10") (= "=") (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5530)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5530)" (( "(") (binary_expression "PTR_LAB_0015b6c0 + -0x5530" (identifier "PTR_LAB_0015b6c0") (+ "+") (number_literal "-0x5530")) () ")")))) (; ";")) (expression_statement "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358)" (identifier "pcVar11") (= "=") (cast_expression "(code *)(PTR_LAB_0015b6d8 + 0x358)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6d8 + 0x358)" (( "(") (binary_expression "PTR_LAB_0015b6d8 + 0x358" (identifier "PTR_LAB_0015b6d8") (+ "+") (number_literal "0x358")) () ")")))) (; ";")) (expression_statement "pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;" (assignment_expression "pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30" (identifier "pcVar40") (= "=") (binary_expression "pcVar44 + *(int *)(iVar21 + 0xc) * 0x30" (identifier "pcVar44") (+ "+") (binary_expression "*(int *)(iVar21 + 0xc) * 0x30" (pointer_expression "*(int *)(iVar21 + 0xc)" (* "*") (cast_expression "(int *)(iVar21 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0xc)" (( "(") (binary_expression "iVar21 + 0xc" (identifier "iVar21") (+ "+") (number_literal "0xc")) () ")")))) (* "*") (number_literal "0x30")))) (; ";")) (expression_statement "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8)" (identifier "pcVar9") (= "=") (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x51d8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x51d8)" (( "(") (binary_expression "PTR_LAB_0015b6c0 + -0x51d8" (identifier "PTR_LAB_0015b6c0") (+ "+") (number_literal "-0x51d8")) () ")")))) (; ";")) (expression_statement "unaff_s5 = pcVar44;" (assignment_expression "unaff_s5 = pcVar44" (identifier "unaff_s5") (= "=") (identifier "pcVar44")) (; ";")) (labeled_statement "LAB_00080e28:\n    pcVar43 = pcVar44;" (statement_identifier "LAB_00080e28") (: ":") (expression_statement "pcVar43 = pcVar44;" (assignment_expression "pcVar43 = pcVar44" (identifier "pcVar43") (= "=") (identifier "pcVar44")) (; ";"))) (expression_statement "pcVar44 = unaff_s5;" (assignment_expression "pcVar44 = unaff_s5" (identifier "pcVar44") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "unaff_s6 = puVar6;" (assignment_expression "unaff_s6 = puVar6" (identifier "unaff_s6") (= "=") (identifier "puVar6")) (; ";")) (if_statement "if (unaff_s5 < pcVar40) {\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(unaff_s5 < pcVar40)" (( "(") (binary_expression "unaff_s5 < pcVar40" (identifier "unaff_s5") (< "<") (identifier "pcVar40")) () ")")) (compound_statement "{\n      do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );\n    }" ({ "{") (do_statement "do {\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      } while( true );" (do "do") (compound_statement "{\n        puVar30 = (uint *)puVar32[2];\n        pcVar43 = pcVar44 + 0x30;\n        unaff_s5 = pcVar43;\n        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }\n        pcVar44 = pcVar43;\n        if (pcVar40 <= pcVar43) break;\n      }" ({ "{") (expression_statement "puVar30 = (uint *)puVar32[2];" (assignment_expression "puVar30 = (uint *)puVar32[2]" (identifier "puVar30") (= "=") (cast_expression "(uint *)puVar32[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar32[2]" (identifier "puVar32") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pcVar43 = pcVar44 + 0x30;" (assignment_expression "pcVar43 = pcVar44 + 0x30" (identifier "pcVar43") (= "=") (binary_expression "pcVar44 + 0x30" (identifier "pcVar44") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "unaff_s5 = pcVar43;" (assignment_expression "unaff_s5 = pcVar43" (identifier "unaff_s5") (= "=") (identifier "pcVar43")) (; ";")) (if_statement "if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }" (if "if") (parenthesized_expression "((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0)" (( "(") (binary_expression "(*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&\n            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0" (binary_expression "(*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0" (parenthesized_expression "(*(uint *)(pcVar44 + 0x20) & (uint)puVar30)" (( "(") (binary_expression "*(uint *)(pcVar44 + 0x20) & (uint)puVar30" (pointer_expression "*(uint *)(pcVar44 + 0x20)" (* "*") (cast_expression "(uint *)(pcVar44 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar44 + 0x20)" (( "(") (binary_expression "pcVar44 + 0x20" (identifier "pcVar44") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (cast_expression "(uint)puVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar30"))) () ")")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0" (parenthesized_expression "(*(uint *)(pcVar44 + 0x24) & puVar32[3])" (( "(") (binary_expression "*(uint *)(pcVar44 + 0x24) & puVar32[3]" (pointer_expression "*(uint *)(pcVar44 + 0x24)" (* "*") (cast_expression "(uint *)(pcVar44 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar44 + 0x24)" (( "(") (binary_expression "pcVar44 + 0x24" (identifier "pcVar44") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (subscript_expression "puVar32[3]" (identifier "puVar32") ([ "[") (number_literal "3") (] "]"))) () ")")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          pcVar31 = (char *)0x0;\n          puVar30 = (uint *)0x0;\n          iVar8 = (*pcVar10)(pcVar44,iVar36);\n          if (iVar8 != 0) goto code_r0x00080e78;\n        }" ({ "{") (expression_statement "pcVar31 = (char *)0x0;" (assignment_expression "pcVar31 = (char *)0x0" (identifier "pcVar31") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar30 = (uint *)0x0;" (assignment_expression "puVar30 = (uint *)0x0" (identifier "puVar30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar8 = (*pcVar10)(pcVar44,iVar36);" (assignment_expression "iVar8 = (*pcVar10)(pcVar44,iVar36)" (identifier "iVar8") (= "=") (call_expression "(*pcVar10)(pcVar44,iVar36)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(pcVar44,iVar36)" (( "(") (identifier "pcVar44") (, ",") (identifier "iVar36") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) goto code_r0x00080e78;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00080e78;" (goto "goto") (statement_identifier "code_r0x00080e78") (; ";"))) (} "}"))) (expression_statement "pcVar44 = pcVar43;" (assignment_expression "pcVar44 = pcVar43" (identifier "pcVar44") (= "=") (identifier "pcVar43")) (; ";")) (if_statement "if (pcVar40 <= pcVar43) break;" (if "if") (parenthesized_expression "(pcVar40 <= pcVar43)" (( "(") (binary_expression "pcVar40 <= pcVar43" (identifier "pcVar40") (<= "<=") (identifier "pcVar43")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar5 = PTR_LAB_0015b6d8;" (assignment_expression "puVar5 = PTR_LAB_0015b6d8" (identifier "puVar5") (= "=") (identifier "PTR_LAB_0015b6d8")) (; ";")) (expression_statement "puVar4 = PTR_LAB_0015b6c0;" (assignment_expression "puVar4 = PTR_LAB_0015b6c0" (identifier "puVar4") (= "=") (identifier "PTR_LAB_0015b6c0")) (; ";")) (expression_statement "cVar20 = '\0';" (assignment_expression "cVar20 = '\0'" (identifier "cVar20") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar40 = pcVar39;" (assignment_expression "pcVar40 = pcVar39" (identifier "pcVar40") (= "=") (identifier "pcVar39")) (; ";")) (expression_statement "pcVar44 = pcVar43;" (assignment_expression "pcVar44 = pcVar43" (identifier "pcVar44") (= "=") (identifier "pcVar43")) (; ";")) (if_statement "if (puVar49 != (uint *)0x0) {\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }" (if "if") (parenthesized_expression "(puVar49 != (uint *)0x0)" (( "(") (binary_expression "puVar49 != (uint *)0x0" (identifier "puVar49") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);\n    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);\n    pcVar43 = unaff_s5;\nLAB_0008081c:\n    puVar30 = (uint *)puVar49[9];\n    if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }\n    unaff_s5 = pcVar43;\n    if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }\n  }" ({ "{") (expression_statement "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8)" (identifier "pcVar9") (= "=") (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x51d8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x51d8)" (( "(") (binary_expression "PTR_LAB_0015b6c0 + -0x51d8" (identifier "PTR_LAB_0015b6c0") (+ "+") (number_literal "-0x51d8")) () ")")))) (; ";")) (expression_statement "pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38)" (identifier "pcVar10") (= "=") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x2b38)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x2b38)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x2b38" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x2b38")) () ")")))) (; ";")) (expression_statement "pcVar43 = unaff_s5;" (assignment_expression "pcVar43 = unaff_s5" (identifier "pcVar43") (= "=") (identifier "unaff_s5")) (; ";")) (labeled_statement "LAB_0008081c:\n    puVar30 = (uint *)puVar49[9];" (statement_identifier "LAB_0008081c") (: ":") (expression_statement "puVar30 = (uint *)puVar49[9];" (assignment_expression "puVar30 = (uint *)puVar49[9]" (identifier "puVar30") (= "=") (cast_expression "(uint *)puVar49[9]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar49[9]" (identifier "puVar49") ([ "[") (number_literal "9") (] "]")))) (; ";"))) (if_statement "if (((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))) {\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }" (if "if") (parenthesized_expression "(((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe)))" (( "(") (binary_expression "((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&\n       (-1 < *(char *)(puVar49 + 0xe))" (parenthesized_expression "((puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0))" (( "(") (binary_expression "(puVar30 == (uint *)0x0) ||\n        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)" (parenthesized_expression "(puVar30 == (uint *)0x0)" (( "(") (binary_expression "puVar30 == (uint *)0x0" (identifier "puVar30") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)" (( "(") (comma_expression "iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0" (assignment_expression "iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21)" (identifier "iVar8") (= "=") (call_expression "FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21)" (identifier "FUN_000805b0") (argument_list "(*(undefined4 *)(iVar36 + 0x28),iVar21)" (( "(") (pointer_expression "*(undefined4 *)(iVar36 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar36 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x28)" (( "(") (binary_expression "iVar36 + 0x28" (identifier "iVar36") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (identifier "iVar21") () ")")))) (, ",") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(-1 < *(char *)(puVar49 + 0xe))" (( "(") (binary_expression "-1 < *(char *)(puVar49 + 0xe)" (number_literal "-1") (< "<") (pointer_expression "*(char *)(puVar49 + 0xe)" (* "*") (cast_expression "(char *)(puVar49 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + 0xe)" (( "(") (binary_expression "puVar49 + 0xe" (identifier "puVar49") (+ "+") (number_literal "0xe")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      sVar17 = *(short *)puVar49[2];\n      pcVar44 = (char *)(int)sVar17;\n      puVar32[6] = 0;\n      *(undefined2 *)(puVar32 + 7) = 0;\n      *puVar32 = (uint)param_3;\n      puVar32[10] = 0;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      *(undefined2 *)((int)puVar32 + 0x12) = 0;\n      *(short *)((int)puVar32 + 0x16) = sVar17;\n      puVar32[8] = (uint)puVar49;\n      puVar32[1] = (uint)param_4;\n      bVar18 = *(byte *)((int)puVar49 + 0x37);\n      bVar24 = bVar18 & 0x20;\n      if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }\n      if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }\n      goto LAB_0008096c;\n    }" ({ "{") (expression_statement "sVar17 = *(short *)puVar49[2];" (assignment_expression "sVar17 = *(short *)puVar49[2]" (identifier "sVar17") (= "=") (pointer_expression "*(short *)puVar49[2]" (* "*") (cast_expression "(short *)puVar49[2]" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar49[2]" (identifier "puVar49") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "pcVar44 = (char *)(int)sVar17;" (assignment_expression "pcVar44 = (char *)(int)sVar17" (identifier "pcVar44") (= "=") (cast_expression "(char *)(int)sVar17" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)sVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar17")))) (; ";")) (expression_statement "puVar32[6] = 0;" (assignment_expression "puVar32[6] = 0" (subscript_expression "puVar32[6]" (identifier "puVar32") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar32 + 7) = 0;" (assignment_expression "*(undefined2 *)(puVar32 + 7) = 0" (pointer_expression "*(undefined2 *)(puVar32 + 7)" (* "*") (cast_expression "(undefined2 *)(puVar32 + 7)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 7)" (( "(") (binary_expression "puVar32 + 7" (identifier "puVar32") (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar32 = (uint)param_3;" (assignment_expression "*puVar32 = (uint)param_3" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (= "=") (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "puVar32[10] = 0;" (assignment_expression "puVar32[10] = 0" (subscript_expression "puVar32[10]" (identifier "puVar32") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x11)" (( "(") (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" (* "*") (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x12)" (( "(") (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(short *)((int)puVar32 + 0x16) = sVar17;" (assignment_expression "*(short *)((int)puVar32 + 0x16) = sVar17" (pointer_expression "*(short *)((int)puVar32 + 0x16)" (* "*") (cast_expression "(short *)((int)puVar32 + 0x16)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x16)" (( "(") (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x16")) () ")")))) (= "=") (identifier "sVar17")) (; ";")) (expression_statement "puVar32[8] = (uint)puVar49;" (assignment_expression "puVar32[8] = (uint)puVar49" (subscript_expression "puVar32[8]" (identifier "puVar32") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(uint)puVar49" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar49"))) (; ";")) (expression_statement "puVar32[1] = (uint)param_4;" (assignment_expression "puVar32[1] = (uint)param_4" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4"))) (; ";")) (expression_statement "bVar18 = *(byte *)((int)puVar49 + 0x37);" (assignment_expression "bVar18 = *(byte *)((int)puVar49 + 0x37)" (identifier "bVar18") (= "=") (pointer_expression "*(byte *)((int)puVar49 + 0x37)" (* "*") (cast_expression "(byte *)((int)puVar49 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar49 + 0x37)" (( "(") (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar49")) (+ "+") (number_literal "0x37")) () ")"))))) (; ";")) (expression_statement "bVar24 = bVar18 & 0x20;" (assignment_expression "bVar24 = bVar18 & 0x20" (identifier "bVar24") (= "=") (binary_expression "bVar18 & 0x20" (identifier "bVar18") (& "&") (number_literal "0x20"))) (; ";")) (if_statement "if ((bVar18 & 0x20) == 0) {\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }" (if "if") (parenthesized_expression "((bVar18 & 0x20) == 0)" (( "(") (binary_expression "(bVar18 & 0x20) == 0" (parenthesized_expression "(bVar18 & 0x20)" (( "(") (binary_expression "bVar18 & 0x20" (identifier "bVar18") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar22 = *(int **)(*param_1 + 8);\n        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }\n        goto LAB_0008095c;\n      }" ({ "{") (expression_statement "piVar22 = *(int **)(*param_1 + 8);" (assignment_expression "piVar22 = *(int **)(*param_1 + 8)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }" (if "if") (parenthesized_expression "((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8))" (( "(") (binary_expression "(piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)" (parenthesized_expression "(piVar22 != (int *)0x0)" (( "(") (binary_expression "piVar22 != (int *)0x0" (identifier "piVar22") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = *piVar22, 0 < iVar8)" (( "(") (comma_expression "iVar8 = *piVar22, 0 < iVar8" (assignment_expression "iVar8 = *piVar22" (identifier "iVar8") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (, ",") (binary_expression "0 < iVar8" (number_literal "0") (< "<") (identifier "iVar8"))) () ")"))) () ")")) (compound_statement "{\n          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);\n          piVar12 = piVar22 + 1;\n          iVar37 = 0;\nLAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }\nLAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);\n          (*pcVar9)();\n        }" ({ "{") (expression_statement "unaff_s6 = *(undefined4 **)(iVar36 + 0x28);" (assignment_expression "unaff_s6 = *(undefined4 **)(iVar36 + 0x28)" (identifier "unaff_s6") (= "=") (pointer_expression "*(undefined4 **)(iVar36 + 0x28)" (* "*") (cast_expression "(undefined4 **)(iVar36 + 0x28)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar36 + 0x28)" (( "(") (binary_expression "iVar36 + 0x28" (identifier "iVar36") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "piVar12 = piVar22 + 1;" (assignment_expression "piVar12 = piVar22 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar22 + 1" (identifier "piVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" (identifier "iVar37") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000808d4:\n          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }" (statement_identifier "LAB_000808d4") (: ":") (for_statement "for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;\n              pcVar43 = *(char **)(pcVar43 + 0xc)) {\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }" (for "for") (( "(") (assignment_expression "pcVar43 = (char *)*piVar12" (identifier "pcVar43") (= "=") (cast_expression "(char *)*piVar12" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) (; ";") (binary_expression "pcVar43 != (char *)0x0" (identifier "pcVar43") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "pcVar43 = *(char **)(pcVar43 + 0xc)" (identifier "pcVar43") (= "=") (pointer_expression "*(char **)(pcVar43 + 0xc)" (* "*") (cast_expression "(char **)(pcVar43 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar43 + 0xc)" (( "(") (binary_expression "pcVar43 + 0xc" (identifier "pcVar43") (+ "+") (number_literal "0xc")) () ")"))))) () ")") (compound_statement "{\n            while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }\n          }" ({ "{") (while_statement "while( true ) {\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }\n              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;\n              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);\n              if (pcVar43 == (char *)0x0) goto LAB_0008090c;\n            }" ({ "{") (if_statement "if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }" (if "if") (parenthesized_expression "((*(uint *)(pcVar43 + 4) & 0x1000) == 0)" (( "(") (binary_expression "(*(uint *)(pcVar43 + 4) & 0x1000) == 0" (parenthesized_expression "(*(uint *)(pcVar43 + 4) & 0x1000)" (( "(") (binary_expression "*(uint *)(pcVar43 + 4) & 0x1000" (pointer_expression "*(uint *)(pcVar43 + 4)" (* "*") (cast_expression "(uint *)(pcVar43 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar43 + 4)" (( "(") (binary_expression "pcVar43 + 4" (identifier "pcVar43") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x1000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                puVar7 = puVar49;\n                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }\n                iVar13 = *(int *)(pcVar43 + 0x20);\n                if (iVar13 < 0) goto LAB_00080b70;\n                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;\n                psVar26 = (short *)puVar49[1];\n                if (iVar13 == *psVar26) goto LAB_00080b70;\n                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);\n                goto LAB_00080b5c;\n              }" ({ "{") (expression_statement "puVar7 = puVar49;" (assignment_expression "puVar7 = puVar49" (identifier "puVar7") (= "=") (identifier "puVar49")) (; ";")) (if_statement "if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }" (if "if") (parenthesized_expression "((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c)))" (( "(") (binary_expression "(*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))" (parenthesized_expression "(*pcVar43 != -0x62)" (( "(") (binary_expression "*pcVar43 != -0x62" (pointer_expression "*pcVar43" (* "*") (identifier "pcVar43")) (!= "!=") (number_literal "-0x62")) () ")")) (|| "||") (parenthesized_expression "(unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))" (( "(") (binary_expression "unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c)" (identifier "unaff_s6") (!= "!=") (pointer_expression "*(undefined4 **)(pcVar43 + 0x1c)" (* "*") (cast_expression "(undefined4 **)(pcVar43 + 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar43 + 0x1c)" (( "(") (binary_expression "pcVar43 + 0x1c" (identifier "pcVar43") (+ "+") (number_literal "0x1c")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n                  if (puVar49[10] == 0) goto LAB_00080938;\n                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n                  puVar45 = (undefined4 *)(puVar49[10] + 4);\n                  if (uVar23 == 0) goto LAB_00080938;\n                  pcVar31 = (char *)0x0;\n                  goto LAB_00080ad0;\n                }" ({ "{") (if_statement "if (puVar49[10] == 0) goto LAB_00080938;" (if "if") (parenthesized_expression "(puVar49[10] == 0)" (( "(") (binary_expression "puVar49[10] == 0" (subscript_expression "puVar49[10]" (identifier "puVar49") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00080938;" (goto "goto") (statement_identifier "LAB_00080938") (; ";"))) (expression_statement "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);" (assignment_expression "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32)" (identifier "uVar23") (= "=") (binary_expression "(uint)*(ushort *)((int)puVar49 + 0x32)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)((int)puVar49 + 0x32)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar49 + 0x32)" (( "(") (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar49")) (+ "+") (number_literal "0x32")) () ")"))))) (; ";")) (expression_statement "puVar45 = (undefined4 *)(puVar49[10] + 4);" (assignment_expression "puVar45 = (undefined4 *)(puVar49[10] + 4)" (identifier "puVar45") (= "=") (cast_expression "(undefined4 *)(puVar49[10] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49[10] + 4)" (( "(") (binary_expression "puVar49[10] + 4" (subscript_expression "puVar49[10]" (identifier "puVar49") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (uVar23 == 0) goto LAB_00080938;" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00080938;" (goto "goto") (statement_identifier "LAB_00080938") (; ";"))) (expression_statement "pcVar31 = (char *)0x0;" (assignment_expression "pcVar31 = (char *)0x0" (identifier "pcVar31") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00080ad0;" (goto "goto") (statement_identifier "LAB_00080ad0") (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(pcVar43 + 0x20);" (assignment_expression "iVar13 = *(int *)(pcVar43 + 0x20)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(pcVar43 + 0x20)" (* "*") (cast_expression "(int *)(pcVar43 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar43 + 0x20)" (( "(") (binary_expression "pcVar43 + 0x20" (identifier "pcVar43") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (iVar13 < 0) goto LAB_00080b70;" (if "if") (parenthesized_expression "(iVar13 < 0)" (( "(") (binary_expression "iVar13 < 0" (identifier "iVar13") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00080b70;" (goto "goto") (statement_identifier "LAB_00080b70") (; ";"))) (if_statement "if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;" (if "if") (parenthesized_expression "(*(ushort *)((int)puVar49 + 0x32) == 0)" (( "(") (binary_expression "*(ushort *)((int)puVar49 + 0x32) == 0" (pointer_expression "*(ushort *)((int)puVar49 + 0x32)" (* "*") (cast_expression "(ushort *)((int)puVar49 + 0x32)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar49 + 0x32)" (( "(") (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar49")) (+ "+") (number_literal "0x32")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00080938;" (goto "goto") (statement_identifier "LAB_00080938") (; ";"))) (expression_statement "psVar26 = (short *)puVar49[1];" (assignment_expression "psVar26 = (short *)puVar49[1]" (identifier "psVar26") (= "=") (cast_expression "(short *)puVar49[1]" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar49[1]" (identifier "puVar49") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (iVar13 == *psVar26) goto LAB_00080b70;" (if "if") (parenthesized_expression "(iVar13 == *psVar26)" (( "(") (binary_expression "iVar13 == *psVar26" (identifier "iVar13") (== "==") (pointer_expression "*psVar26" (* "*") (identifier "psVar26"))) () ")")) (goto_statement "goto LAB_00080b70;" (goto "goto") (statement_identifier "LAB_00080b70") (; ";"))) (expression_statement "psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);" (assignment_expression "psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32)" (identifier "psVar27") (= "=") (binary_expression "psVar26 + *(ushort *)((int)puVar49 + 0x32)" (identifier "psVar26") (+ "+") (pointer_expression "*(ushort *)((int)puVar49 + 0x32)" (* "*") (cast_expression "(ushort *)((int)puVar49 + 0x32)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar49 + 0x32)" (( "(") (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar49")) (+ "+") (number_literal "0x32")) () ")")))))) (; ";")) (goto_statement "goto LAB_00080b5c;" (goto "goto") (statement_identifier "LAB_00080b5c") (; ";")) (} "}"))) (if_statement "if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;" (if "if") (parenthesized_expression "((*(uint *)(pcVar43 + 4) & 0x40000) == 0)" (( "(") (binary_expression "(*(uint *)(pcVar43 + 4) & 0x40000) == 0" (parenthesized_expression "(*(uint *)(pcVar43 + 4) & 0x40000)" (( "(") (binary_expression "*(uint *)(pcVar43 + 4) & 0x40000" (pointer_expression "*(uint *)(pcVar43 + 4)" (* "*") (cast_expression "(uint *)(pcVar43 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar43 + 4)" (( "(") (binary_expression "pcVar43 + 4" (identifier "pcVar43") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x40000")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);" (assignment_expression "pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4)" (identifier "pcVar43") (= "=") (pointer_expression "*(char **)(*(int *)(pcVar43 + 0x14) + 4)" (* "*") (cast_expression "(char **)(*(int *)(pcVar43 + 0x14) + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar43 + 0x14) + 4)" (( "(") (binary_expression "*(int *)(pcVar43 + 0x14) + 4" (pointer_expression "*(int *)(pcVar43 + 0x14)" (* "*") (cast_expression "(int *)(pcVar43 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar43 + 0x14)" (( "(") (binary_expression "pcVar43 + 0x14" (identifier "pcVar43") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (pcVar43 == (char *)0x0) goto LAB_0008090c;" (if "if") (parenthesized_expression "(pcVar43 == (char *)0x0)" (( "(") (binary_expression "pcVar43 == (char *)0x0" (identifier "pcVar43") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0008090c;" (goto "goto") (statement_identifier "LAB_0008090c") (; ";"))) (} "}"))) (} "}")))) (labeled_statement "LAB_0008090c:\n                    \n          pcVar9 = (code *)trap(0);" (statement_identifier "LAB_0008090c") (: ":") (expression_statement "pcVar9 = (code *)trap(0);" (assignment_expression "pcVar9 = (code *)trap(0)" (identifier "pcVar9") (= "=") (cast_expression "(code *)trap(0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "trap(0)" (identifier "trap") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";"))) (expression_statement "(*pcVar9)();" (call_expression "(*pcVar9)()" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0008095c;" (goto "goto") (statement_identifier "LAB_0008095c") (; ";")) (} "}"))) (if_statement "if ((bVar18 & 0xc0) == 0xc0) {\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }" (if "if") (parenthesized_expression "((bVar18 & 0xc0) == 0xc0)" (( "(") (binary_expression "(bVar18 & 0xc0) == 0xc0" (parenthesized_expression "(bVar18 & 0xc0)" (( "(") (binary_expression "bVar18 & 0xc0" (identifier "bVar18") (& "&") (number_literal "0xc0")) () ")")) (== "==") (number_literal "0xc0")) () ")")) (compound_statement "{\n        bVar24 = 0;\n        puVar32[9] = 0x100;\n        goto LAB_00080c28;\n      }" ({ "{") (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" (identifier "bVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar32[9] = 0x100;" (assignment_expression "puVar32[9] = 0x100" (subscript_expression "puVar32[9]" (identifier "puVar32") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0x100")) (; ";")) (goto_statement "goto LAB_00080c28;" (goto "goto") (statement_identifier "LAB_00080c28") (; ";")) (} "}"))) (goto_statement "goto LAB_0008096c;" (goto "goto") (statement_identifier "LAB_0008096c") (; ";")) (} "}"))) (expression_statement "unaff_s5 = pcVar43;" (assignment_expression "unaff_s5 = pcVar43" (identifier "unaff_s5") (= "=") (identifier "pcVar43")) (; ";")) (if_statement "if (*(int *)(iVar36 + 0x44) == 0) {\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar36 + 0x44) == 0)" (( "(") (binary_expression "*(int *)(iVar36 + 0x44) == 0" (pointer_expression "*(int *)(iVar36 + 0x44)" (* "*") (cast_expression "(int *)(iVar36 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x44)" (( "(") (binary_expression "iVar36 + 0x44" (identifier "iVar36") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar49 = (uint *)puVar49[5];\n      goto LAB_00080bf4;\n    }" ({ "{") (expression_statement "puVar49 = (uint *)puVar49[5];" (assignment_expression "puVar49 = (uint *)puVar49[5]" (identifier "puVar49") (= "=") (cast_expression "(uint *)puVar49[5]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar49[5]" (identifier "puVar49") ([ "[") (number_literal "5") (] "]")))) (; ";")) (goto_statement "goto LAB_00080bf4;" (goto "goto") (statement_identifier "LAB_00080bf4") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar43 = unaff_s5;" (assignment_expression "pcVar43 = unaff_s5" (identifier "pcVar43") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00080a6c:\n  if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }" (statement_identifier "LAB_00080a6c") (: ":") (if_statement "if (local_2c == *(int **)puVar48) {\n    return iVar8;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int **)puVar48)" (( "(") (binary_expression "local_2c == *(int **)puVar48" (identifier "local_2c") (== "==") (pointer_expression "*(int **)puVar48" (* "*") (cast_expression "(int **)puVar48" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar48")))) () ")")) (compound_statement "{\n    return iVar8;\n  }" ({ "{") (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}")))) (expression_statement "pcVar9 = FUN_000810a8;" (assignment_expression "pcVar9 = FUN_000810a8" (identifier "pcVar9") (= "=") (identifier "FUN_000810a8")) (; ";")) (expression_statement "piVar22 = local_2c;" (assignment_expression "piVar22 = local_2c" (identifier "piVar22") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar48 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar48 = PTR___stack_chk_fail_0015ba10" (identifier "puVar48") (= "=") (identifier "PTR___stack_chk_fail_0015ba10")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015ba10"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar12 = *(int **)(puVar48 + 0xda984);" (assignment_expression "piVar12 = *(int **)(puVar48 + 0xda984)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(puVar48 + 0xda984)" (* "*") (cast_expression "(int **)(puVar48 + 0xda984)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar48 + 0xda984)" (( "(") (binary_expression "puVar48 + 0xda984" (identifier "puVar48") (+ "+") (number_literal "0xda984")) () ")"))))) (; ";")) (expression_statement "puStack_e8 = unaff_s6;" (assignment_expression "puStack_e8 = unaff_s6" (identifier "puStack_e8") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "puStack_e0 = puVar49;" (assignment_expression "puStack_e0 = puVar49" (identifier "puStack_e0") (= "=") (identifier "puVar49")) (; ";")) (expression_statement "piStack_f0 = param_1;" (assignment_expression "piStack_f0 = param_1" (identifier "piStack_f0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcStack_dc = pcVar9;" (assignment_expression "pcStack_dc = pcVar9" (identifier "pcStack_dc") (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "puStack_e4 = puVar7;" (assignment_expression "puStack_e4 = puVar7" (identifier "puStack_e4") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "pcStack_ec = pcVar43;" (assignment_expression "pcStack_ec = pcVar43" (identifier "pcStack_ec") (= "=") (identifier "pcVar43")) (; ";")) (expression_statement "pcStack_f4 = pcVar44;" (assignment_expression "pcStack_f4 = pcVar44" (identifier "pcStack_f4") (= "=") (identifier "pcVar44")) (; ";")) (expression_statement "pcStack_f8 = pcVar40;" (assignment_expression "pcStack_f8 = pcVar40" (identifier "pcStack_f8") (= "=") (identifier "pcVar40")) (; ";")) (expression_statement "iStack_fc = iVar36;" (assignment_expression "iStack_fc = iVar36" (identifier "iStack_fc") (= "=") (identifier "iVar36")) (; ";")) (expression_statement "puStack_100 = puVar32;" (assignment_expression "puStack_100 = puVar32" (identifier "puStack_100") (= "=") (identifier "puVar32")) (; ";")) (expression_statement "puVar6 = (undefined4 *)piVar22[1];" (assignment_expression "puVar6 = (undefined4 *)piVar22[1]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)piVar22[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar22[1]" (identifier "piVar22") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar32 = (uint *)piVar22[3];" (assignment_expression "puVar32 = (uint *)piVar22[3]" (identifier "puVar32") (= "=") (cast_expression "(uint *)piVar22[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar22[3]" (identifier "piVar22") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "uStack_348 = 0;" (assignment_expression "uStack_348 = 0" (identifier "uStack_348") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_344 = 0;" (assignment_expression "uStack_344 = 0" (identifier "uStack_344") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_340 = 0;" (assignment_expression "uStack_340 = 0" (identifier "uStack_340") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_33c = 0;" (assignment_expression "uStack_33c = 0" (identifier "uStack_33c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_338 = 0;" (assignment_expression "uStack_338 = 0" (identifier "uStack_338") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_334 = 0;" (assignment_expression "uStack_334 = 0" (identifier "uStack_334") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_330 = 0;" (assignment_expression "uStack_330 = 0" (identifier "uStack_330") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar29 = puVar6[5] + puVar6[3] * 0x30;" (assignment_expression "uVar29 = puVar6[5] + puVar6[3] * 0x30" (identifier "uVar29") (= "=") (binary_expression "puVar6[5] + puVar6[3] * 0x30" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (+ "+") (binary_expression "puVar6[3] * 0x30" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (* "*") (number_literal "0x30")))) (; ";")) (expression_statement "uStack_32c = 0;" (assignment_expression "uStack_32c = 0" (identifier "uStack_32c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_328 = 0;" (assignment_expression "uStack_328 = 0" (identifier "uStack_328") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_324 = 0;" (assignment_expression "uStack_324 = 0" (identifier "uStack_324") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_320 = 0;" (assignment_expression "uStack_320 = 0" (identifier "uStack_320") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_31c = 0;" (assignment_expression "uStack_31c = 0" (identifier "uStack_31c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_318 = 0;" (assignment_expression "uStack_318 = 0" (identifier "uStack_318") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_314 = 0;" (assignment_expression "uStack_314 = 0" (identifier "uStack_314") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = puVar6[5];" (assignment_expression "uVar23 = puVar6[5]" (identifier "uVar23") (= "=") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iStack_104 = *piVar12;" (assignment_expression "iStack_104 = *piVar12" (identifier "iStack_104") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "pcStack_cc = pcVar31;" (assignment_expression "pcStack_cc = pcVar31" (identifier "pcStack_cc") (= "=") (identifier "pcVar31")) (; ";")) (expression_statement "puStack_d0 = puVar30;" (assignment_expression "puStack_d0 = puVar30" (identifier "puStack_d0") (= "=") (identifier "puVar30")) (; ";")) (expression_statement "puVar30 = (uint *)(uint)(uVar23 < uVar29);" (assignment_expression "puVar30 = (uint *)(uint)(uVar23 < uVar29)" (identifier "puVar30") (= "=") (cast_expression "(uint *)(uint)(uVar23 < uVar29)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(uVar23 < uVar29)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar23 < uVar29)" (( "(") (binary_expression "uVar23 < uVar29" (identifier "uVar23") (< "<") (identifier "uVar29")) () ")"))))) (; ";")) (expression_statement "iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;" (assignment_expression "iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" (identifier "iVar21") (= "=") (binary_expression "*(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "*(int *)(*piVar22 + 4) + 8" (pointer_expression "*(int *)(*piVar22 + 4)" (* "*") (cast_expression "(int *)(*piVar22 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + 4)" (( "(") (binary_expression "*piVar22 + 4" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) (+ "+") (binary_expression "(uint)*(byte *)(puVar32 + 4) * 0x48" (binary_expression "(uint)*(byte *)(puVar32 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(puVar32 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 4)" (( "(") (binary_expression "puVar32 + 4" (identifier "puVar32") (+ "+") (number_literal "4")) () ")")))) (* "*") (number_literal "0x48")))) (; ";")) (expression_statement "iVar36 = *(int *)(iVar21 + 0x28);" (assignment_expression "iVar36 = *(int *)(iVar21 + 0x28)" (identifier "iVar36") (= "=") (pointer_expression "*(int *)(iVar21 + 0x28)" (* "*") (cast_expression "(int *)(iVar21 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x28)" (( "(") (binary_expression "iVar21 + 0x28" (identifier "iVar21") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (puVar30 == (uint *)0x0) {\nLAB_00081208:\n    iVar47 = 0;\n  }\n  else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }" (if "if") (parenthesized_expression "(puVar30 == (uint *)0x0)" (( "(") (binary_expression "puVar30 == (uint *)0x0" (identifier "puVar30") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00081208:\n    iVar47 = 0;\n  }" ({ "{") (labeled_statement "LAB_00081208:\n    iVar47 = 0;" (statement_identifier "LAB_00081208") (: ":") (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" (identifier "iVar47") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }" (else "else") (compound_statement "{\n    iVar8 = *(int *)(puVar48 + 0xda5b4);\n    iVar37 = *(int *)(puVar48 + 0xda630);\n    iVar13 = *(int *)(puVar48 + 0xda66c);\n    do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);\n    iVar47 = 0;\n  }" ({ "{") (expression_statement "iVar8 = *(int *)(puVar48 + 0xda5b4);" (assignment_expression "iVar8 = *(int *)(puVar48 + 0xda5b4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar48 + 0xda5b4)" (* "*") (cast_expression "(int *)(puVar48 + 0xda5b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar48 + 0xda5b4)" (( "(") (binary_expression "puVar48 + 0xda5b4" (identifier "puVar48") (+ "+") (number_literal "0xda5b4")) () ")"))))) (; ";")) (expression_statement "iVar37 = *(int *)(puVar48 + 0xda630);" (assignment_expression "iVar37 = *(int *)(puVar48 + 0xda630)" (identifier "iVar37") (= "=") (pointer_expression "*(int *)(puVar48 + 0xda630)" (* "*") (cast_expression "(int *)(puVar48 + 0xda630)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar48 + 0xda630)" (( "(") (binary_expression "puVar48 + 0xda630" (identifier "puVar48") (+ "+") (number_literal "0xda630")) () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar48 + 0xda66c);" (assignment_expression "iVar13 = *(int *)(puVar48 + 0xda66c)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar48 + 0xda66c)" (* "*") (cast_expression "(int *)(puVar48 + 0xda66c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar48 + 0xda66c)" (( "(") (binary_expression "puVar48 + 0xda66c" (identifier "puVar48") (+ "+") (number_literal "0xda66c")) () ")"))))) (; ";")) (do_statement "do {\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    } while (uVar23 < uVar29);" (do "do") (compound_statement "{\n      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }\n      iStack_364 = *piVar22;\n      puStack_360 = (undefined4 *)piVar22[1];\n      iStack_358 = piVar22[3];\n      iStack_350 = piVar22[5];\n      iStack_34c = piVar22[6];\n      uVar14 = puVar30[5] + puVar30[3] * 0x30;\n      uStack_35c = 0;\n      uVar33 = puVar30[5];\n      puStack_354 = auStack_310;\n      if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }\n      iVar35 = *(int *)(puVar48 + 0xda618);\n      if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }\n      uVar23 = uVar23 + 0x30;\n    }" ({ "{") (while_statement "while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }" (while "while") (parenthesized_expression "(((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0)))" (( "(") (parenthesized_expression "((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))" (( "(") (binary_expression "(*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||\n             (puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0)" (binary_expression "(*(ushort *)(uVar23 + 0xc) & 0x200) == 0" (parenthesized_expression "(*(ushort *)(uVar23 + 0xc) & 0x200)" (( "(") (binary_expression "*(ushort *)(uVar23 + 0xc) & 0x200" (pointer_expression "*(ushort *)(uVar23 + 0xc)" (* "*") (cast_expression "(ushort *)(uVar23 + 0xc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar23 + 0xc)" (( "(") (binary_expression "uVar23 + 0xc" (identifier "uVar23") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0)" (( "(") (comma_expression "puVar30 = *(uint **)(uVar23 + 0x1c),\n             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0" (assignment_expression "puVar30 = *(uint **)(uVar23 + 0x1c)" (identifier "puVar30") (= "=") (pointer_expression "*(uint **)(uVar23 + 0x1c)" (* "*") (cast_expression "(uint **)(uVar23 + 0x1c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar23 + 0x1c)" (( "(") (binary_expression "uVar23 + 0x1c" (identifier "uVar23") (+ "+") (number_literal "0x1c")) () ")"))))) (, ",") (binary_expression "(puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0" (binary_expression "(puVar30[0x66] & puVar32[2]) == 0" (parenthesized_expression "(puVar30[0x66] & puVar32[2])" (( "(") (binary_expression "puVar30[0x66] & puVar32[2]" (subscript_expression "puVar30[0x66]" (identifier "puVar30") ([ "[") (number_literal "0x66") (] "]")) (& "&") (subscript_expression "puVar32[2]" (identifier "puVar32") ([ "[") (number_literal "2") (] "]"))) () ")")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(puVar30[0x67] & puVar32[3]) == 0" (parenthesized_expression "(puVar30[0x67] & puVar32[3])" (( "(") (binary_expression "puVar30[0x67] & puVar32[3]" (subscript_expression "puVar30[0x67]" (identifier "puVar30") ([ "[") (number_literal "0x67") (] "]")) (& "&") (subscript_expression "puVar32[3]" (identifier "puVar32") ([ "[") (number_literal "3") (] "]"))) () ")")) (== "==") (number_literal "0")))) () ")"))) () ")")) () ")")) (compound_statement "{\n        uVar23 = uVar23 + 0x30;\n        if (uVar29 <= uVar23) goto LAB_00081208;\n      }" ({ "{") (expression_statement "uVar23 = uVar23 + 0x30;" (assignment_expression "uVar23 = uVar23 + 0x30" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 0x30" (identifier "uVar23") (+ "+") (number_literal "0x30"))) (; ";")) (if_statement "if (uVar29 <= uVar23) goto LAB_00081208;" (if "if") (parenthesized_expression "(uVar29 <= uVar23)" (( "(") (binary_expression "uVar29 <= uVar23" (identifier "uVar29") (<= "<=") (identifier "uVar23")) () ")")) (goto_statement "goto LAB_00081208;" (goto "goto") (statement_identifier "LAB_00081208") (; ";"))) (} "}"))) (expression_statement "iStack_364 = *piVar22;" (assignment_expression "iStack_364 = *piVar22" (identifier "iStack_364") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "puStack_360 = (undefined4 *)piVar22[1];" (assignment_expression "puStack_360 = (undefined4 *)piVar22[1]" (identifier "puStack_360") (= "=") (cast_expression "(undefined4 *)piVar22[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar22[1]" (identifier "piVar22") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iStack_358 = piVar22[3];" (assignment_expression "iStack_358 = piVar22[3]" (identifier "iStack_358") (= "=") (subscript_expression "piVar22[3]" (identifier "piVar22") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iStack_350 = piVar22[5];" (assignment_expression "iStack_350 = piVar22[5]" (identifier "iStack_350") (= "=") (subscript_expression "piVar22[5]" (identifier "piVar22") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iStack_34c = piVar22[6];" (assignment_expression "iStack_34c = piVar22[6]" (identifier "iStack_34c") (= "=") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar14 = puVar30[5] + puVar30[3] * 0x30;" (assignment_expression "uVar14 = puVar30[5] + puVar30[3] * 0x30" (identifier "uVar14") (= "=") (binary_expression "puVar30[5] + puVar30[3] * 0x30" (subscript_expression "puVar30[5]" (identifier "puVar30") ([ "[") (number_literal "5") (] "]")) (+ "+") (binary_expression "puVar30[3] * 0x30" (subscript_expression "puVar30[3]" (identifier "puVar30") ([ "[") (number_literal "3") (] "]")) (* "*") (number_literal "0x30")))) (; ";")) (expression_statement "uStack_35c = 0;" (assignment_expression "uStack_35c = 0" (identifier "uStack_35c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar33 = puVar30[5];" (assignment_expression "uVar33 = puVar30[5]" (identifier "uVar33") (= "=") (subscript_expression "puVar30[5]" (identifier "puVar30") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puStack_354 = auStack_310;" (assignment_expression "puStack_354 = auStack_310" (identifier "puStack_354") (= "=") (identifier "auStack_310")) (; ";")) (if_statement "if (uVar33 < uVar14) {\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }\n      else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }" (if "if") (parenthesized_expression "(uVar33 < uVar14)" (( "(") (binary_expression "uVar33 < uVar14" (identifier "uVar33") (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n        iVar47 = 0;\n        bVar3 = true;\n        do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n        if (iVar47 != 0) goto LAB_0008120c;\n      }" ({ "{") (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" (identifier "iVar47") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (do_statement "do {\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        } while (uVar33 < uVar14);" (do "do") (compound_statement "{\n          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }\n          uVar33 = uVar33 + 0x30;\n        }" ({ "{") (if_statement "if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }\n          else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }" (if "if") (parenthesized_expression "((*(ushort *)(uVar33 + 0xc) & 0x400) == 0)" (( "(") (binary_expression "(*(ushort *)(uVar33 + 0xc) & 0x400) == 0" (parenthesized_expression "(*(ushort *)(uVar33 + 0xc) & 0x400)" (( "(") (binary_expression "*(ushort *)(uVar33 + 0xc) & 0x400" (pointer_expression "*(ushort *)(uVar33 + 0xc)" (* "*") (cast_expression "(ushort *)(uVar33 + 0xc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar33 + 0xc)" (( "(") (binary_expression "uVar33 + 0xc" (identifier "uVar33") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }\n          }" ({ "{") (if_statement "if (*(int *)(uVar33 + 0x14) == iVar36) {\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }" (if "if") (parenthesized_expression "(*(int *)(uVar33 + 0x14) == iVar36)" (( "(") (binary_expression "*(int *)(uVar33 + 0x14) == iVar36" (pointer_expression "*(int *)(uVar33 + 0x14)" (* "*") (cast_expression "(int *)(uVar33 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar33 + 0x14)" (( "(") (binary_expression "uVar33 + 0x14" (identifier "uVar33") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (identifier "iVar36")) () ")")) (compound_statement "{\n              uStack_2a0 = *puVar6;\n              uStack_298 = 0x2c;\n              uStack_294 = 1;\n              puStack_360 = &uStack_2a0;\n              puStack_29c = puVar6;\n              uStack_28c = uVar33;\n              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;\nLAB_000813ec:\n              auStack_310[0] = 0;\n              iVar47 = FUN_00080720(&iStack_364);\n              goto joined_r0x00081334;\n            }" ({ "{") (expression_statement "uStack_2a0 = *puVar6;" (assignment_expression "uStack_2a0 = *puVar6" (identifier "uStack_2a0") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "uStack_298 = 0x2c;" (assignment_expression "uStack_298 = 0x2c" (identifier "uStack_298") (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "uStack_294 = 1;" (assignment_expression "uStack_294 = 1" (identifier "uStack_294") (= "=") (number_literal "1")) (; ";")) (expression_statement "puStack_360 = &uStack_2a0;" (assignment_expression "puStack_360 = &uStack_2a0" (identifier "puStack_360") (= "=") (pointer_expression "&uStack_2a0" (& "&") (identifier "uStack_2a0"))) (; ";")) (expression_statement "puStack_29c = puVar6;" (assignment_expression "puStack_29c = puVar6" (identifier "puStack_29c") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "uStack_28c = uVar33;" (assignment_expression "uStack_28c = uVar33" (identifier "uStack_28c") (= "=") (identifier "uVar33")) (; ";")) (if_statement "if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0" (pointer_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar21 + 0x10) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar21 + 0x10) + 0x38)" (( "(") (binary_expression "*(int *)(iVar21 + 0x10) + 0x38" (pointer_expression "*(int *)(iVar21 + 0x10)" (* "*") (cast_expression "(int *)(iVar21 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x10)" (( "(") (binary_expression "iVar21 + 0x10" (identifier "iVar21") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00081310;" (goto "goto") (statement_identifier "LAB_00081310") (; ";"))) (labeled_statement "LAB_000813ec:\n              auStack_310[0] = 0;" (statement_identifier "LAB_000813ec") (: ":") (expression_statement "auStack_310[0] = 0;" (assignment_expression "auStack_310[0] = 0" (subscript_expression "auStack_310[0]" (identifier "auStack_310") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar47 = FUN_00080720(&iStack_364);" (assignment_expression "iVar47 = FUN_00080720(&iStack_364)" (identifier "iVar47") (= "=") (call_expression "FUN_00080720(&iStack_364)" (identifier "FUN_00080720") (argument_list "(&iStack_364)" (( "(") (pointer_expression "&iStack_364" (& "&") (identifier "iStack_364")) () ")")))) (; ";")) (goto_statement "goto joined_r0x00081334;" (goto "goto") (statement_identifier "joined_r0x00081334") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }" (else "else") (compound_statement "{\n            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);\n            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;\nLAB_00081310:\n            auStack_310[0] = 0;\n            iVar47 = FUN_0007403c(&iStack_364);\njoined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }\n            uVar38 = (uint)auStack_310[0];\n            if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }\n            if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }\n          }" ({ "{") (expression_statement "puStack_360 = *(undefined4 **)(uVar33 + 0x1c);" (assignment_expression "puStack_360 = *(undefined4 **)(uVar33 + 0x1c)" (identifier "puStack_360") (= "=") (pointer_expression "*(undefined4 **)(uVar33 + 0x1c)" (* "*") (cast_expression "(undefined4 **)(uVar33 + 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar33 + 0x1c)" (( "(") (binary_expression "uVar33 + 0x1c" (identifier "uVar33") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0" (pointer_expression "*(int *)(*(int *)(iVar21 + 0x10) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar21 + 0x10) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar21 + 0x10) + 0x38)" (( "(") (binary_expression "*(int *)(iVar21 + 0x10) + 0x38" (pointer_expression "*(int *)(iVar21 + 0x10)" (* "*") (cast_expression "(int *)(iVar21 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x10)" (( "(") (binary_expression "iVar21 + 0x10" (identifier "iVar21") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000813ec;" (goto "goto") (statement_identifier "LAB_000813ec") (; ";"))) (labeled_statement "LAB_00081310:\n            auStack_310[0] = 0;" (statement_identifier "LAB_00081310") (: ":") (expression_statement "auStack_310[0] = 0;" (assignment_expression "auStack_310[0] = 0" (subscript_expression "auStack_310[0]" (identifier "auStack_310") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar47 = FUN_0007403c(&iStack_364);" (assignment_expression "iVar47 = FUN_0007403c(&iStack_364)" (identifier "iVar47") (= "=") (call_expression "FUN_0007403c(&iStack_364)" (identifier "FUN_0007403c") (argument_list "(&iStack_364)" (( "(") (pointer_expression "&iStack_364" (& "&") (identifier "iStack_364")) () ")")))) (; ";")) (labeled_statement "joined_r0x00081334:\n            if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }" (statement_identifier "joined_r0x00081334") (: ":") (if_statement "if (iVar47 == 0) {\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }" (if "if") (parenthesized_expression "(iVar47 == 0)" (( "(") (binary_expression "iVar47 == 0" (identifier "iVar47") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);\n            }" ({ "{") (expression_statement "iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);" (assignment_expression "iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364)" (identifier "iVar47") (= "=") (call_expression "(*(code *)(iVar13 + 0x10a8))(&iStack_364)" (parenthesized_expression "(*(code *)(iVar13 + 0x10a8))" (( "(") (pointer_expression "*(code *)(iVar13 + 0x10a8)" (* "*") (cast_expression "(code *)(iVar13 + 0x10a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10a8)" (( "(") (binary_expression "iVar13 + 0x10a8" (identifier "iVar13") (+ "+") (number_literal "0x10a8")) () ")")))) () ")")) (argument_list "(&iStack_364)" (( "(") (pointer_expression "&iStack_364" (& "&") (identifier "iStack_364")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar38 = (uint)auStack_310[0];" (assignment_expression "uVar38 = (uint)auStack_310[0]" (identifier "uVar38") (= "=") (cast_expression "(uint)auStack_310[0]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "auStack_310[0]" (identifier "auStack_310") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if (uVar38 == 0) {\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }" (if "if") (parenthesized_expression "(uVar38 == 0)" (( "(") (binary_expression "uVar38 == 0" (identifier "uVar38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uStack_348 = uStack_348 & 0xffff;\n              break;\n            }" ({ "{") (expression_statement "uStack_348 = uStack_348 & 0xffff;" (assignment_expression "uStack_348 = uStack_348 & 0xffff" (identifier "uStack_348") (= "=") (binary_expression "uStack_348 & 0xffff" (identifier "uStack_348") (& "&") (number_literal "0xffff"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (bVar3) {\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }\n            else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);\n              puVar30 = auStack_308;\n              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);\n              bVar3 = false;\n            }" ({ "{") (expression_statement "uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);" (assignment_expression "uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_)" (identifier "uStack_348") (= "=") (call_expression "CONCAT22(auStack_310[0],uStack_348._2_2_)" (identifier "CONCAT22") (argument_list "(auStack_310[0],uStack_348._2_2_)" (( "(") (subscript_expression "auStack_310[0]" (identifier "auStack_310") ([ "[") (number_literal "0") (] "]")) (, ",") (field_expression "uStack_348._2_2_" (identifier "uStack_348") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "puVar30 = auStack_308;" (assignment_expression "puVar30 = auStack_308" (identifier "puVar30") (= "=") (identifier "auStack_308")) (; ";")) (expression_statement "(**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);" (call_expression "(**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30)" (parenthesized_expression "(**(code **)(puVar48 + 0xda92c))" (( "(") (pointer_expression "**(code **)(puVar48 + 0xda92c)" (* "*") (pointer_expression "*(code **)(puVar48 + 0xda92c)" (* "*") (cast_expression "(code **)(puVar48 + 0xda92c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar48 + 0xda92c)" (( "(") (binary_expression "puVar48 + 0xda92c" (identifier "puVar48") (+ "+") (number_literal "0xda92c")) () ")"))))) () ")")) (argument_list "(&uStack_340,puVar30,uVar38 << 4,0x30)" (( "(") (pointer_expression "&uStack_340" (& "&") (identifier "uStack_340")) (, ",") (identifier "puVar30") (, ",") (binary_expression "uVar38 << 4" (identifier "uVar38") (<< "<<") (number_literal "4")) (, ",") (number_literal "0x30") () ")"))) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }" (else "else") (compound_statement "{\n              uVar41 = (uint)uStack_348._0_2_;\n              puVar30 = &uStack_340;\n              auStack_2d8[0] = uStack_348._0_2_;\n              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);\n              uStack_348 = uStack_348 & 0xffff;\n              if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }\n            }" ({ "{") (expression_statement "uVar41 = (uint)uStack_348._0_2_;" (assignment_expression "uVar41 = (uint)uStack_348._0_2_" (identifier "uVar41") (= "=") (cast_expression "(uint)uStack_348._0_2_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "uStack_348._0_2_" (identifier "uStack_348") (. ".") (field_identifier "_0_2_")))) (; ";")) (expression_statement "puVar30 = &uStack_340;" (assignment_expression "puVar30 = &uStack_340" (identifier "puVar30") (= "=") (pointer_expression "&uStack_340" (& "&") (identifier "uStack_340"))) (; ";")) (expression_statement "auStack_2d8[0] = uStack_348._0_2_;" (assignment_expression "auStack_2d8[0] = uStack_348._0_2_" (subscript_expression "auStack_2d8[0]" (identifier "auStack_2d8") ([ "[") (number_literal "0") (] "]")) (= "=") (field_expression "uStack_348._0_2_" (identifier "uStack_348") (. ".") (field_identifier "_0_2_"))) (; ";")) (expression_statement "(**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);" (call_expression "(**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30)" (parenthesized_expression "(**(code **)(puVar48 + 0xda92c))" (( "(") (pointer_expression "**(code **)(puVar48 + 0xda92c)" (* "*") (pointer_expression "*(code **)(puVar48 + 0xda92c)" (* "*") (cast_expression "(code **)(puVar48 + 0xda92c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar48 + 0xda92c)" (( "(") (binary_expression "puVar48 + 0xda92c" (identifier "puVar48") (+ "+") (number_literal "0xda92c")) () ")"))))) () ")")) (argument_list "(auStack_2d0,puVar30,uVar41 * 0x10,0x30)" (( "(") (identifier "auStack_2d0") (, ",") (identifier "puVar30") (, ",") (binary_expression "uVar41 * 0x10" (identifier "uVar41") (* "*") (number_literal "0x10")) (, ",") (number_literal "0x30") () ")"))) (; ";")) (expression_statement "uStack_348 = uStack_348 & 0xffff;" (assignment_expression "uStack_348 = uStack_348 & 0xffff" (identifier "uStack_348") (= "=") (binary_expression "uStack_348 & 0xffff" (identifier "uStack_348") (& "&") (number_literal "0xffff"))) (; ";")) (if_statement "if (uVar41 != 0) {\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }" (if "if") (parenthesized_expression "(uVar41 != 0)" (( "(") (binary_expression "uVar41 != 0" (identifier "uVar41") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                puVar34 = auStack_2d8;\n                puVar15 = puVar34 + uVar41 * 8;\n                do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);\n              }" ({ "{") (expression_statement "puVar34 = auStack_2d8;" (assignment_expression "puVar34 = auStack_2d8" (identifier "puVar34") (= "=") (identifier "auStack_2d8")) (; ";")) (expression_statement "puVar15 = puVar34 + uVar41 * 8;" (assignment_expression "puVar15 = puVar34 + uVar41 * 8" (identifier "puVar15") (= "=") (binary_expression "puVar34 + uVar41 * 8" (identifier "puVar34") (+ "+") (binary_expression "uVar41 * 8" (identifier "uVar41") (* "*") (number_literal "8")))) (; ";")) (do_statement "do {\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                } while (puVar15 != puVar34);" (do "do") (compound_statement "{\n                  if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }\n                  puVar34 = puVar34 + 8;\n                  uVar38 = (uint)auStack_310[0];\n                }" ({ "{") (if_statement "if (uVar38 != 0) {\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }" (if "if") (parenthesized_expression "(uVar38 != 0)" (( "(") (binary_expression "uVar38 != 0" (identifier "uVar38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar41 = *(uint *)(puVar34 + 4);\n                    iVar35 = 0;\n                    uVar38 = *(uint *)(puVar34 + 6);\n                    uVar1 = puVar34[8];\n                    uVar2 = puVar34[9];\n                    puVar46 = auStack_310;\n                    do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);\n                  }" ({ "{") (expression_statement "uVar41 = *(uint *)(puVar34 + 4);" (assignment_expression "uVar41 = *(uint *)(puVar34 + 4)" (identifier "uVar41") (= "=") (pointer_expression "*(uint *)(puVar34 + 4)" (* "*") (cast_expression "(uint *)(puVar34 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar34 + 4)" (( "(") (binary_expression "puVar34 + 4" (identifier "puVar34") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" (identifier "iVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar38 = *(uint *)(puVar34 + 6);" (assignment_expression "uVar38 = *(uint *)(puVar34 + 6)" (identifier "uVar38") (= "=") (pointer_expression "*(uint *)(puVar34 + 6)" (* "*") (cast_expression "(uint *)(puVar34 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar34 + 6)" (( "(") (binary_expression "puVar34 + 6" (identifier "puVar34") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "uVar1 = puVar34[8];" (assignment_expression "uVar1 = puVar34[8]" (identifier "uVar1") (= "=") (subscript_expression "puVar34[8]" (identifier "puVar34") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "uVar2 = puVar34[9];" (assignment_expression "uVar2 = puVar34[9]" (identifier "uVar2") (= "=") (subscript_expression "puVar34[9]" (identifier "puVar34") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "puVar46 = auStack_310;" (assignment_expression "puVar46 = auStack_310" (identifier "puVar46") (= "=") (identifier "auStack_310")) (; ";")) (do_statement "do {\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    } while (iVar35 < (int)(uint)auStack_310[0]);" (do "do") (compound_statement "{\n                      iVar35 = iVar35 + 1;\n                      pcVar9 = (code *)(iVar37 + 0x358);\n                      (*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);\n                      puVar30 = (uint *)(int)(short)puVar46[9];\n                      (*pcVar9)((int)(short)uVar2);\n                      (*(code *)(iVar8 + -0x58))(&uStack_348);\n                      puVar46 = puVar46 + 8;\n                    }" ({ "{") (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar9 = (code *)(iVar37 + 0x358);" (assignment_expression "pcVar9 = (code *)(iVar37 + 0x358)" (identifier "pcVar9") (= "=") (cast_expression "(code *)(iVar37 + 0x358)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar37 + 0x358)" (( "(") (binary_expression "iVar37 + 0x358" (identifier "iVar37") (+ "+") (number_literal "0x358")) () ")")))) (; ";")) (expression_statement "(*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);" (call_expression "(*(code *)(iVar37 + 0x358))\n                                ((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38)" (parenthesized_expression "(*(code *)(iVar37 + 0x358))" (( "(") (pointer_expression "*(code *)(iVar37 + 0x358)" (* "*") (cast_expression "(code *)(iVar37 + 0x358)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar37 + 0x358)" (( "(") (binary_expression "iVar37 + 0x358" (identifier "iVar37") (+ "+") (number_literal "0x358")) () ")")))) () ")")) (argument_list "((int)(short)uVar1,(int)(short)puVar46[8],\n                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38)" (( "(") (cast_expression "(int)(short)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(short)uVar1" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar1"))) (, ",") (cast_expression "(int)(short)puVar46[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(short)puVar46[8]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "puVar46[8]" (identifier "puVar46") ([ "[") (number_literal "8") (] "]")))) (, ",") (binary_expression "*(uint *)(puVar46 + 4) | uVar41" (pointer_expression "*(uint *)(puVar46 + 4)" (* "*") (cast_expression "(uint *)(puVar46 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 4)" (( "(") (binary_expression "puVar46 + 4" (identifier "puVar46") (+ "+") (number_literal "4")) () ")")))) (| "|") (identifier "uVar41")) (, ",") (binary_expression "*(uint *)(puVar46 + 6) | uVar38" (pointer_expression "*(uint *)(puVar46 + 6)" (* "*") (cast_expression "(uint *)(puVar46 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 6)" (( "(") (binary_expression "puVar46 + 6" (identifier "puVar46") (+ "+") (number_literal "6")) () ")")))) (| "|") (identifier "uVar38")) () ")"))) (; ";")) (expression_statement "puVar30 = (uint *)(int)(short)puVar46[9];" (assignment_expression "puVar30 = (uint *)(int)(short)puVar46[9]" (identifier "puVar30") (= "=") (cast_expression "(uint *)(int)(short)puVar46[9]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)(short)puVar46[9]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(short)puVar46[9]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "puVar46[9]" (identifier "puVar46") ([ "[") (number_literal "9") (] "]")))))) (; ";")) (expression_statement "(*pcVar9)((int)(short)uVar2);" (call_expression "(*pcVar9)((int)(short)uVar2)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "((int)(short)uVar2)" (( "(") (cast_expression "(int)(short)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(short)uVar2" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar2"))) () ")"))) (; ";")) (expression_statement "(*(code *)(iVar8 + -0x58))(&uStack_348);" (call_expression "(*(code *)(iVar8 + -0x58))(&uStack_348)" (parenthesized_expression "(*(code *)(iVar8 + -0x58))" (( "(") (pointer_expression "*(code *)(iVar8 + -0x58)" (* "*") (cast_expression "(code *)(iVar8 + -0x58)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x58)" (( "(") (binary_expression "iVar8 + -0x58" (identifier "iVar8") (+ "+") (number_literal "-0x58")) () ")")))) () ")")) (argument_list "(&uStack_348)" (( "(") (pointer_expression "&uStack_348" (& "&") (identifier "uStack_348")) () ")"))) (; ";")) (expression_statement "puVar46 = puVar46 + 8;" (assignment_expression "puVar46 = puVar46 + 8" (identifier "puVar46") (= "=") (binary_expression "puVar46 + 8" (identifier "puVar46") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar35 < (int)(uint)auStack_310[0])" (( "(") (binary_expression "iVar35 < (int)(uint)auStack_310[0]" (identifier "iVar35") (< "<") (cast_expression "(int)(uint)auStack_310[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)auStack_310[0]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "auStack_310[0]" (identifier "auStack_310") ([ "[") (number_literal "0") (] "]"))))) () ")")) (; ";")) (} "}"))) (expression_statement "puVar34 = puVar34 + 8;" (assignment_expression "puVar34 = puVar34 + 8" (identifier "puVar34") (= "=") (binary_expression "puVar34 + 8" (identifier "puVar34") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "uVar38 = (uint)auStack_310[0];" (assignment_expression "uVar38 = (uint)auStack_310[0]" (identifier "uVar38") (= "=") (cast_expression "(uint)auStack_310[0]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "auStack_310[0]" (identifier "auStack_310") ([ "[") (number_literal "0") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar15 != puVar34)" (( "(") (binary_expression "puVar15 != puVar34" (identifier "puVar15") (!= "!=") (identifier "puVar34")) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}")))) (expression_statement "uVar33 = uVar33 + 0x30;" (assignment_expression "uVar33 = uVar33 + 0x30" (identifier "uVar33") (= "=") (binary_expression "uVar33 + 0x30" (identifier "uVar33") (+ "+") (number_literal "0x30"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar33 < uVar14)" (( "(") (binary_expression "uVar33 < uVar14" (identifier "uVar33") (< "<") (identifier "uVar14")) () ")")) (; ";")) (expression_statement "*(undefined2 *)(puVar32 + 10) = 1;" (assignment_expression "*(undefined2 *)(puVar32 + 10) = 1" (pointer_expression "*(undefined2 *)(puVar32 + 10)" (* "*") (cast_expression "(undefined2 *)(puVar32 + 10)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 10)" (( "(") (binary_expression "puVar32 + 10" (identifier "puVar32") (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)puVar32[0xc] = uVar23;" (assignment_expression "*(uint *)puVar32[0xc] = uVar23" (pointer_expression "*(uint *)puVar32[0xc]" (* "*") (cast_expression "(uint *)puVar32[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar32[0xc]" (identifier "puVar32") ([ "[") (number_literal "0xc") (] "]")))) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" (* "*") (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x12)" (( "(") (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar32[9] = 0x2000;" (assignment_expression "puVar32[9] = 0x2000" (subscript_expression "puVar32[9]" (identifier "puVar32") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0x2000")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x11)" (( "(") (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar32 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 6)" (* "*") (cast_expression "(undefined1 *)(puVar32 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x19) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x19) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x19)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x19)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x19)" (( "(") (binary_expression "(int)puVar32 + 0x19" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x19")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1a)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x1a)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x1a)" (( "(") (binary_expression "(int)puVar32 + 0x1a" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x1a")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1b) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1b)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x1b)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x1b)" (( "(") (binary_expression "(int)puVar32 + 0x1b" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x1b")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar32 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar32 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 7)" (( "(") (binary_expression "puVar32 + 7" (identifier "puVar32") (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x1d)" (( "(") (binary_expression "(int)puVar32 + 0x1d" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1e)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x1e)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x1e)" (( "(") (binary_expression "(int)puVar32 + 0x1e" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x1e")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1f)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x1f)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x1f)" (( "(") (binary_expression "(int)puVar32 + 0x1f" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x1f")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar32 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 8)" (* "*") (cast_expression "(undefined1 *)(puVar32 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 8)" (( "(") (binary_expression "puVar32 + 8" (identifier "puVar32") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x21) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x21) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x21)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x21)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x21)" (( "(") (binary_expression "(int)puVar32 + 0x21" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x21")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x22) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x22) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x22)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x22)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x22)" (( "(") (binary_expression "(int)puVar32 + 0x22" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x22")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x23) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x23) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x23)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x23)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x23)" (( "(") (binary_expression "(int)puVar32 + 0x23" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x23")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar47 != 0) goto LAB_0008120c;" (if "if") (parenthesized_expression "(iVar47 != 0)" (( "(") (binary_expression "iVar47 != 0" (identifier "iVar47") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008120c;" (goto "goto") (statement_identifier "LAB_0008120c") (; ";"))) (} "}")) (else_clause "else {\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }" (else "else") (compound_statement "{\n        *(undefined2 *)(puVar32 + 10) = 1;\n        *(uint *)puVar32[0xc] = uVar23;\n        *(undefined2 *)((int)puVar32 + 0x12) = 0;\n        puVar32[9] = 0x2000;\n        *(undefined1 *)((int)puVar32 + 0x11) = 0;\n        *(undefined1 *)(puVar32 + 6) = 0;\n        *(undefined1 *)((int)puVar32 + 0x19) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1a) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1b) = 0;\n        *(undefined1 *)(puVar32 + 7) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1d) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1e) = 0;\n        *(undefined1 *)((int)puVar32 + 0x1f) = 0;\n        *(undefined1 *)(puVar32 + 8) = 0;\n        *(undefined1 *)((int)puVar32 + 0x21) = 0;\n        *(undefined1 *)((int)puVar32 + 0x22) = 0;\n        *(undefined1 *)((int)puVar32 + 0x23) = 0;\n      }" ({ "{") (expression_statement "*(undefined2 *)(puVar32 + 10) = 1;" (assignment_expression "*(undefined2 *)(puVar32 + 10) = 1" (pointer_expression "*(undefined2 *)(puVar32 + 10)" (* "*") (cast_expression "(undefined2 *)(puVar32 + 10)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 10)" (( "(") (binary_expression "puVar32 + 10" (identifier "puVar32") (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)puVar32[0xc] = uVar23;" (assignment_expression "*(uint *)puVar32[0xc] = uVar23" (pointer_expression "*(uint *)puVar32[0xc]" (* "*") (cast_expression "(uint *)puVar32[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar32[0xc]" (identifier "puVar32") ([ "[") (number_literal "0xc") (] "]")))) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" (* "*") (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x12)" (( "(") (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar32[9] = 0x2000;" (assignment_expression "puVar32[9] = 0x2000" (subscript_expression "puVar32[9]" (identifier "puVar32") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0x2000")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x11)" (( "(") (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar32 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 6)" (* "*") (cast_expression "(undefined1 *)(puVar32 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x19) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x19) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x19)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x19)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x19)" (( "(") (binary_expression "(int)puVar32 + 0x19" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x19")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1a)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x1a)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x1a)" (( "(") (binary_expression "(int)puVar32 + 0x1a" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x1a")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1b) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1b)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x1b)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x1b)" (( "(") (binary_expression "(int)puVar32 + 0x1b" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x1b")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar32 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar32 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 7)" (( "(") (binary_expression "puVar32 + 7" (identifier "puVar32") (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x1d)" (( "(") (binary_expression "(int)puVar32 + 0x1d" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1e)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x1e)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x1e)" (( "(") (binary_expression "(int)puVar32 + 0x1e" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x1e")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x1f)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x1f)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x1f)" (( "(") (binary_expression "(int)puVar32 + 0x1f" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x1f")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar32 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar32 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar32 + 8)" (* "*") (cast_expression "(undefined1 *)(puVar32 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 8)" (( "(") (binary_expression "puVar32 + 8" (identifier "puVar32") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x21) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x21) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x21)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x21)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x21)" (( "(") (binary_expression "(int)puVar32 + 0x21" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x21")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x22) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x22) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x22)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x22)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x22)" (( "(") (binary_expression "(int)puVar32 + 0x22" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x22")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar32 + 0x23) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x23) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x23)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x23)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x23)" (( "(") (binary_expression "(int)puVar32 + 0x23" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x23")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "iVar35 = *(int *)(puVar48 + 0xda618);" (assignment_expression "iVar35 = *(int *)(puVar48 + 0xda618)" (identifier "iVar35") (= "=") (pointer_expression "*(int *)(puVar48 + 0xda618)" (* "*") (cast_expression "(int *)(puVar48 + 0xda618)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar48 + 0xda618)" (( "(") (binary_expression "puVar48 + 0xda618" (identifier "puVar48") (+ "+") (number_literal "0xda618")) () ")"))))) (; ";")) (if_statement "if (uStack_348._0_2_ != 0) {\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }" (if "if") (parenthesized_expression "(uStack_348._0_2_ != 0)" (( "(") (binary_expression "uStack_348._0_2_ != 0" (field_expression "uStack_348._0_2_" (identifier "uStack_348") (. ".") (field_identifier "_0_2_")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar42 = 0;\n        puVar49 = &uStack_348;\n        do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));\n      }" ({ "{") (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" (identifier "iVar42") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar49 = &uStack_348;" (assignment_expression "puVar49 = &uStack_348" (identifier "puVar49") (= "=") (pointer_expression "&uStack_348" (& "&") (identifier "uStack_348"))) (; ";")) (do_statement "do {\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        } while (iVar42 < (int)(uStack_348 >> 0x10));" (do "do") (compound_statement "{\n          iVar42 = iVar42 + 1;\n          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;\n          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);\n          uVar14 = puVar49[2];\n          puVar32[1] = puVar49[3];\n          *puVar32 = uVar14;\n          puVar30 = puVar32;\n          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);\n          if (iVar47 != 0) goto LAB_0008120c;\n          puVar49 = puVar49 + 4;\n        }" ({ "{") (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" (identifier "iVar42") (= "=") (binary_expression "iVar42 + 1" (identifier "iVar42") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;" (assignment_expression "*(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1" (pointer_expression "*(short *)(puVar32 + 5)" (* "*") (cast_expression "(short *)(puVar32 + 5)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 5)" (( "(") (binary_expression "puVar32 + 5" (identifier "puVar32") (+ "+") (number_literal "5")) () ")")))) (= "=") (binary_expression "*(short *)(puVar49 + 4) + 1" (pointer_expression "*(short *)(puVar49 + 4)" (* "*") (cast_expression "(short *)(puVar49 + 4)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + 4)" (( "(") (binary_expression "puVar49 + 4" (identifier "puVar49") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12)" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x16)" (* "*") (cast_expression "(undefined2 *)((int)puVar32 + 0x16)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x16)" (( "(") (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x16")) () ")")))) (= "=") (pointer_expression "*(undefined2 *)((int)puVar49 + 0x12)" (* "*") (cast_expression "(undefined2 *)((int)puVar49 + 0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar49 + 0x12)" (( "(") (binary_expression "(int)puVar49 + 0x12" (cast_expression "(int)puVar49" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar49")) (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (expression_statement "uVar14 = puVar49[2];" (assignment_expression "uVar14 = puVar49[2]" (identifier "uVar14") (= "=") (subscript_expression "puVar49[2]" (identifier "puVar49") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar32[1] = puVar49[3];" (assignment_expression "puVar32[1] = puVar49[3]" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar49[3]" (identifier "puVar49") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar32 = uVar14;" (assignment_expression "*puVar32 = uVar14" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar30 = puVar32;" (assignment_expression "puVar30 = puVar32" (identifier "puVar30") (= "=") (identifier "puVar32")) (; ";")) (expression_statement "iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);" (assignment_expression "iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22)" (identifier "iVar47") (= "=") (call_expression "(*(code *)(iVar35 + -0x51d8))(piVar22)" (parenthesized_expression "(*(code *)(iVar35 + -0x51d8))" (( "(") (pointer_expression "*(code *)(iVar35 + -0x51d8)" (* "*") (cast_expression "(code *)(iVar35 + -0x51d8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + -0x51d8)" (( "(") (binary_expression "iVar35 + -0x51d8" (identifier "iVar35") (+ "+") (number_literal "-0x51d8")) () ")")))) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")")))) (; ";")) (if_statement "if (iVar47 != 0) goto LAB_0008120c;" (if "if") (parenthesized_expression "(iVar47 != 0)" (( "(") (binary_expression "iVar47 != 0" (identifier "iVar47") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008120c;" (goto "goto") (statement_identifier "LAB_0008120c") (; ";"))) (expression_statement "puVar49 = puVar49 + 4;" (assignment_expression "puVar49 = puVar49 + 4" (identifier "puVar49") (= "=") (binary_expression "puVar49 + 4" (identifier "puVar49") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar42 < (int)(uStack_348 >> 0x10))" (( "(") (binary_expression "iVar42 < (int)(uStack_348 >> 0x10)" (identifier "iVar42") (< "<") (cast_expression "(int)(uStack_348 >> 0x10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uStack_348 >> 0x10)" (( "(") (binary_expression "uStack_348 >> 0x10" (identifier "uStack_348") (>> ">>") (number_literal "0x10")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar23 = uVar23 + 0x30;" (assignment_expression "uVar23 = uVar23 + 0x30" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 0x30" (identifier "uVar23") (+ "+") (number_literal "0x30"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar23 < uVar29)" (( "(") (binary_expression "uVar23 < uVar29" (identifier "uVar23") (< "<") (identifier "uVar29")) () ")")) (; ";")) (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" (identifier "iVar47") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0008120c:\n  if (iStack_104 == *piVar12) {\n    return iVar47;\n  }" (statement_identifier "LAB_0008120c") (: ":") (if_statement "if (iStack_104 == *piVar12) {\n    return iVar47;\n  }" (if "if") (parenthesized_expression "(iStack_104 == *piVar12)" (( "(") (binary_expression "iStack_104 == *piVar12" (identifier "iStack_104") (== "==") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) () ")")) (compound_statement "{\n    return iVar47;\n  }" ({ "{") (return_statement "return iVar47;" (return "return") (identifier "iVar47") (; ";")) (} "}")))) (expression_statement "iVar21 = iStack_104;" (assignment_expression "iVar21 = iStack_104" (identifier "iVar21") (= "=") (identifier "iStack_104")) (; ";")) (expression_statement "(**(code **)(puVar48 + 0xda968))();" (call_expression "(**(code **)(puVar48 + 0xda968))()" (parenthesized_expression "(**(code **)(puVar48 + 0xda968))" (( "(") (pointer_expression "**(code **)(puVar48 + 0xda968)" (* "*") (pointer_expression "*(code **)(puVar48 + 0xda968)" (* "*") (cast_expression "(code **)(puVar48 + 0xda968)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar48 + 0xda968)" (( "(") (binary_expression "puVar48 + 0xda968" (identifier "puVar48") (+ "+") (number_literal "0xda968")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar36 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar36 = *(int *)(iVar21 + 0x18)" (identifier "iVar36") (= "=") (pointer_expression "*(int *)(iVar21 + 0x18)" (* "*") (cast_expression "(int *)(iVar21 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x18)" (( "(") (binary_expression "iVar21 + 0x18" (identifier "iVar21") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar21 = FUN_0007bd64(0);" (assignment_expression "iVar21 = FUN_0007bd64(0)" (identifier "iVar21") (= "=") (call_expression "FUN_0007bd64(0)" (identifier "FUN_0007bd64") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar21 != 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar21 != 0)" (( "(") (binary_expression "iVar21 != 0" (identifier "iVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)puVar30 = 0x9e;" (assignment_expression "*(undefined1 *)puVar30 = 0x9e" (pointer_expression "*(undefined1 *)puVar30" (* "*") (cast_expression "(undefined1 *)puVar30" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar30"))) (= "=") (number_literal "0x9e")) (; ";")) (expression_statement "puVar30[7] = *(uint *)(iVar36 + 8);" (assignment_expression "puVar30[7] = *(uint *)(iVar36 + 8)" (subscript_expression "puVar30[7]" (identifier "puVar30") ([ "[") (number_literal "7") (] "]")) (= "=") (pointer_expression "*(uint *)(iVar36 + 8)" (* "*") (cast_expression "(uint *)(iVar36 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 8)" (( "(") (binary_expression "iVar36 + 8" (identifier "iVar36") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar23 = *(uint *)(iVar36 + 0xc);" (assignment_expression "uVar23 = *(uint *)(iVar36 + 0xc)" (identifier "uVar23") (= "=") (pointer_expression "*(uint *)(iVar36 + 0xc)" (* "*") (cast_expression "(uint *)(iVar36 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0xc)" (( "(") (binary_expression "iVar36 + 0xc" (identifier "iVar36") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "puVar30[0xc] = 0;" (assignment_expression "puVar30[0xc] = 0" (subscript_expression "puVar30[0xc]" (identifier "puVar30") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar30[8] = uVar23;" (assignment_expression "puVar30[8] = uVar23" (subscript_expression "puVar30[8]" (identifier "puVar30") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (labeled_statement "code_r0x00080e78:\n  *(undefined2 *)(puVar32 + 6) = 1;" (statement_identifier "code_r0x00080e78") (: ":") (expression_statement "*(undefined2 *)(puVar32 + 6) = 1;" (assignment_expression "*(undefined2 *)(puVar32 + 6) = 1" (pointer_expression "*(undefined2 *)(puVar32 + 6)" (* "*") (cast_expression "(undefined2 *)(puVar32 + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "1")) (; ";"))) (expression_statement "puVar32[8] = 0;" (assignment_expression "puVar32[8] = 0" (subscript_expression "puVar32[8]" (identifier "puVar32") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar32[10] = 0x10000;" (assignment_expression "puVar32[10] = 0x10000" (subscript_expression "puVar32[10]" (identifier "puVar32") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0x10000")) (; ";")) (expression_statement "*(char **)puVar32[0xc] = pcVar44;" (assignment_expression "*(char **)puVar32[0xc] = pcVar44" (pointer_expression "*(char **)puVar32[0xc]" (* "*") (cast_expression "(char **)puVar32[0xc]" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar32[0xc]" (identifier "puVar32") ([ "[") (number_literal "0xc") (] "]")))) (= "=") (identifier "pcVar44")) (; ";")) (expression_statement "*(short *)((int)puVar32 + 0x12) = sStack_b2;" (assignment_expression "*(short *)((int)puVar32 + 0x12) = sStack_b2" (pointer_expression "*(short *)((int)puVar32 + 0x12)" (* "*") (cast_expression "(short *)((int)puVar32 + 0x12)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x12)" (( "(") (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (identifier "sStack_b2")) (; ";")) (if_statement "if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {\n    sVar17 = sStack_b2 + 0x1c;\n  }\n  else {\n    sVar17 = sStack_b2 + -10;\n  }" (if "if") (parenthesized_expression "((puVar6[3] == 0) && ((puVar6[9] & 2) == 0))" (( "(") (binary_expression "(puVar6[3] == 0) && ((puVar6[9] & 2) == 0)" (parenthesized_expression "(puVar6[3] == 0)" (( "(") (binary_expression "puVar6[3] == 0" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((puVar6[9] & 2) == 0)" (( "(") (binary_expression "(puVar6[9] & 2) == 0" (parenthesized_expression "(puVar6[9] & 2)" (( "(") (binary_expression "puVar6[9] & 2" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    sVar17 = sStack_b2 + 0x1c;\n  }" ({ "{") (expression_statement "sVar17 = sStack_b2 + 0x1c;" (assignment_expression "sVar17 = sStack_b2 + 0x1c" (identifier "sVar17") (= "=") (binary_expression "sStack_b2 + 0x1c" (identifier "sStack_b2") (+ "+") (number_literal "0x1c"))) (; ";")) (} "}")) (else_clause "else {\n    sVar17 = sStack_b2 + -10;\n  }" (else "else") (compound_statement "{\n    sVar17 = sStack_b2 + -10;\n  }" ({ "{") (expression_statement "sVar17 = sStack_b2 + -10;" (assignment_expression "sVar17 = sStack_b2 + -10" (identifier "sVar17") (= "=") (binary_expression "sStack_b2 + -10" (identifier "sStack_b2") (+ "+") (number_literal "-10"))) (; ";")) (} "}")))) (if_statement "if (sVar17 < 0) {\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }\n  else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }" (if "if") (parenthesized_expression "(sVar17 < 0)" (( "(") (binary_expression "sVar17 < 0" (identifier "sVar17") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined2 *)((int)puVar32 + 0x12) = 0;\n  }" ({ "{") (expression_statement "*(undefined2 *)((int)puVar32 + 0x12) = 0;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x12) = 0" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x12)" (* "*") (cast_expression "(undefined2 *)((int)puVar32 + 0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x12)" (( "(") (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }" (else "else") (compound_statement "{\n    *(short *)((int)puVar32 + 0x12) = sVar17;\n  }" ({ "{") (expression_statement "*(short *)((int)puVar32 + 0x12) = sVar17;" (assignment_expression "*(short *)((int)puVar32 + 0x12) = sVar17" (pointer_expression "*(short *)((int)puVar32 + 0x12)" (* "*") (cast_expression "(short *)((int)puVar32 + 0x12)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x12)" (( "(") (binary_expression "(int)puVar32 + 0x12" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (identifier "sVar17")) (; ";")) (} "}")))) (expression_statement "*(undefined2 *)((int)puVar32 + 0x16) = 0x2b;" (assignment_expression "*(undefined2 *)((int)puVar32 + 0x16) = 0x2b" (pointer_expression "*(undefined2 *)((int)puVar32 + 0x16)" (* "*") (cast_expression "(undefined2 *)((int)puVar32 + 0x16)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x16)" (( "(") (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x16")) () ")")))) (= "=") (number_literal "0x2b")) (; ";")) (expression_statement "uVar16 = (*pcVar11)(puVar7,0x2b);" (assignment_expression "uVar16 = (*pcVar11)(puVar7,0x2b)" (identifier "uVar16") (= "=") (call_expression "(*pcVar11)(puVar7,0x2b)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(puVar7,0x2b)" (( "(") (identifier "puVar7") (, ",") (number_literal "0x2b") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(puVar32 + 5) = uVar16;" (assignment_expression "*(undefined2 *)(puVar32 + 5) = uVar16" (pointer_expression "*(undefined2 *)(puVar32 + 5)" (* "*") (cast_expression "(undefined2 *)(puVar32 + 5)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 5)" (( "(") (binary_expression "puVar32 + 5" (identifier "puVar32") (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar32[9] = 0x4000;" (assignment_expression "puVar32[9] = 0x4000" (subscript_expression "puVar32[9]" (identifier "puVar32") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0x4000")) (; ";")) (expression_statement "*puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;" (assignment_expression "*puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (= "=") (binary_expression "*(uint *)(pcVar44 + 0x20) | (uint)param_3" (pointer_expression "*(uint *)(pcVar44 + 0x20)" (* "*") (cast_expression "(uint *)(pcVar44 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar44 + 0x20)" (( "(") (binary_expression "pcVar44 + 0x20" (identifier "pcVar44") (+ "+") (number_literal "0x20")) () ")")))) (| "|") (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")))) (; ";")) (expression_statement "puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;" (assignment_expression "puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "*(uint *)(pcVar44 + 0x24) | (uint)param_4" (pointer_expression "*(uint *)(pcVar44 + 0x24)" (* "*") (cast_expression "(uint *)(pcVar44 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar44 + 0x24)" (( "(") (binary_expression "pcVar44 + 0x24" (identifier "pcVar44") (+ "+") (number_literal "0x24")) () ")")))) (| "|") (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")))) (; ";")) (expression_statement "iVar8 = (*pcVar9)(param_1,puVar32);" (assignment_expression "iVar8 = (*pcVar9)(param_1,puVar32)" (identifier "iVar8") (= "=") (call_expression "(*pcVar9)(param_1,puVar32)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(param_1,puVar32)" (( "(") (identifier "param_1") (, ",") (identifier "puVar32") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_00080a6c;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00080a6c;" (goto "goto") (statement_identifier "LAB_00080a6c") (; ";"))) (goto_statement "goto LAB_00080e28;" (goto "goto") (statement_identifier "LAB_00080e28") (; ";")) (while_statement "while( true ) {\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);\n    if (iVar8 == 0) goto LAB_00080b70;\n    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);\n    puVar45 = puVar45 + 5;\n    pcVar31 = pcVar40 + 1;\n    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\nLAB_00080ad0:\n    pcVar40 = pcVar31;\n    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }\n  }" ({ "{") (expression_statement "iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);" (assignment_expression "iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6)" (identifier "iVar8") (= "=") (call_expression "(*pcVar10)(pcVar43,*puVar45,unaff_s6)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(pcVar43,*puVar45,unaff_s6)" (( "(") (identifier "pcVar43") (, ",") (pointer_expression "*puVar45" (* "*") (identifier "puVar45")) (, ",") (identifier "unaff_s6") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_00080b70;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00080b70;" (goto "goto") (statement_identifier "LAB_00080b70") (; ";"))) (expression_statement "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);" (assignment_expression "uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32)" (identifier "uVar23") (= "=") (binary_expression "(uint)*(ushort *)((int)puVar49 + 0x32)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)((int)puVar49 + 0x32)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar49 + 0x32)" (( "(") (binary_expression "(int)puVar49 + 0x32" (cast_expression "(int)puVar49" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar49")) (+ "+") (number_literal "0x32")) () ")"))))) (; ";")) (expression_statement "puVar45 = puVar45 + 5;" (assignment_expression "puVar45 = puVar45 + 5" (identifier "puVar45") (= "=") (binary_expression "puVar45 + 5" (identifier "puVar45") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "pcVar31 = pcVar40 + 1;" (assignment_expression "pcVar31 = pcVar40 + 1" (identifier "pcVar31") (= "=") (binary_expression "pcVar40 + 1" (identifier "pcVar40") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((int)uVar23 <= (int)(pcVar40 + 1)) break;" (if "if") (parenthesized_expression "((int)uVar23 <= (int)(pcVar40 + 1))" (( "(") (binary_expression "(int)uVar23 <= (int)(pcVar40 + 1)" (cast_expression "(int)uVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar23")) (<= "<=") (cast_expression "(int)(pcVar40 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar40 + 1)" (( "(") (binary_expression "pcVar40 + 1" (identifier "pcVar40") (+ "+") (number_literal "1")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00080ad0:\n    pcVar40 = pcVar31;" (statement_identifier "LAB_00080ad0") (: ":") (expression_statement "pcVar40 = pcVar31;" (assignment_expression "pcVar40 = pcVar31" (identifier "pcVar40") (= "=") (identifier "pcVar31")) (; ";"))) (if_statement "if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }" (if "if") (parenthesized_expression "(*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2)" (( "(") (binary_expression "*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2" (pointer_expression "*(short *)(puVar49[1] + (int)pcVar40 * 2)" (* "*") (cast_expression "(short *)(puVar49[1] + (int)pcVar40 * 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49[1] + (int)pcVar40 * 2)" (( "(") (binary_expression "puVar49[1] + (int)pcVar40 * 2" (subscript_expression "puVar49[1]" (identifier "puVar49") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "(int)pcVar40 * 2" (cast_expression "(int)pcVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar40")) (* "*") (number_literal "2"))) () ")")))) (!= "!=") (number_literal "-2")) () ")")) (compound_statement "{\n      puVar45 = puVar45 + 5;\n      pcVar31 = pcVar40 + 1;\n      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;\n      goto LAB_00080ad0;\n    }" ({ "{") (expression_statement "puVar45 = puVar45 + 5;" (assignment_expression "puVar45 = puVar45 + 5" (identifier "puVar45") (= "=") (binary_expression "puVar45 + 5" (identifier "puVar45") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "pcVar31 = pcVar40 + 1;" (assignment_expression "pcVar31 = pcVar40 + 1" (identifier "pcVar31") (= "=") (binary_expression "pcVar40 + 1" (identifier "pcVar40") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((int)uVar23 <= (int)(pcVar40 + 1)) break;" (if "if") (parenthesized_expression "((int)uVar23 <= (int)(pcVar40 + 1))" (( "(") (binary_expression "(int)uVar23 <= (int)(pcVar40 + 1)" (cast_expression "(int)uVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar23")) (<= "<=") (cast_expression "(int)(pcVar40 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar40 + 1)" (( "(") (binary_expression "pcVar40 + 1" (identifier "pcVar40") (+ "+") (number_literal "1")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_00080ad0;" (goto "goto") (statement_identifier "LAB_00080ad0") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar40 = pcVar40 + 1;" (assignment_expression "pcVar40 = pcVar40 + 1" (identifier "pcVar40") (= "=") (binary_expression "pcVar40 + 1" (identifier "pcVar40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar8 = *piVar22;" (assignment_expression "iVar8 = *piVar22" (identifier "iVar8") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (labeled_statement "LAB_00080938:\n  iVar37 = iVar37 + 1;" (statement_identifier "LAB_00080938") (: ":") (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" (identifier "iVar37") (= "=") (binary_expression "iVar37 + 1" (identifier "iVar37") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "piVar12 = piVar12 + 5;" (assignment_expression "piVar12 = piVar12 + 5" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 5" (identifier "piVar12") (+ "+") (number_literal "5"))) (; ";")) (if_statement "if (iVar8 <= iVar37) goto code_r0x00080948;" (if "if") (parenthesized_expression "(iVar8 <= iVar37)" (( "(") (binary_expression "iVar8 <= iVar37" (identifier "iVar8") (<= "<=") (identifier "iVar37")) () ")")) (goto_statement "goto code_r0x00080948;" (goto "goto") (statement_identifier "code_r0x00080948") (; ";"))) (goto_statement "goto LAB_000808d4;" (goto "goto") (statement_identifier "LAB_000808d4") (; ";")) (labeled_statement "LAB_00080b5c:\n  psVar26 = psVar26 + 1;" (statement_identifier "LAB_00080b5c") (: ":") (expression_statement "psVar26 = psVar26 + 1;" (assignment_expression "psVar26 = psVar26 + 1" (identifier "psVar26") (= "=") (binary_expression "psVar26 + 1" (identifier "psVar26") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (psVar27 == psVar26) goto LAB_00080938;" (if "if") (parenthesized_expression "(psVar27 == psVar26)" (( "(") (binary_expression "psVar27 == psVar26" (identifier "psVar27") (== "==") (identifier "psVar26")) () ")")) (goto_statement "goto LAB_00080938;" (goto "goto") (statement_identifier "LAB_00080938") (; ";"))) (if_statement "if (iVar13 == *psVar26) goto LAB_00080b70;" (if "if") (parenthesized_expression "(iVar13 == *psVar26)" (( "(") (binary_expression "iVar13 == *psVar26" (identifier "iVar13") (== "==") (pointer_expression "*psVar26" (* "*") (identifier "psVar26"))) () ")")) (goto_statement "goto LAB_00080b70;" (goto "goto") (statement_identifier "LAB_00080b70") (; ";"))) (goto_statement "goto LAB_00080b5c;" (goto "goto") (statement_identifier "LAB_00080b5c") (; ";")) (labeled_statement "code_r0x00080948:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);" (statement_identifier "code_r0x00080948") (: ":") (expression_statement "bVar18 = *(byte *)((int)puVar49 + 0x37);" (assignment_expression "bVar18 = *(byte *)((int)puVar49 + 0x37)" (identifier "bVar18") (= "=") (pointer_expression "*(byte *)((int)puVar49 + 0x37)" (* "*") (cast_expression "(byte *)((int)puVar49 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar49 + 0x37)" (( "(") (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar49")) (+ "+") (number_literal "0x37")) () ")"))))) (; ";"))) (labeled_statement "LAB_0008095c:\n  if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" (statement_identifier "LAB_0008095c") (: ":") (if_statement "if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }\n  else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" (if "if") (parenthesized_expression "((bVar18 & 0xc0) == 0xc0)" (( "(") (binary_expression "(bVar18 & 0xc0) == 0xc0" (parenthesized_expression "(bVar18 & 0xc0)" (( "(") (binary_expression "bVar18 & 0xc0" (identifier "bVar18") (& "&") (number_literal "0xc0")) () ")")) (== "==") (number_literal "0xc0")) () ")")) (compound_statement "{\n    puVar32[9] = 0x100;\nLAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;\n    *(byte *)((int)puVar32 + 0x11) = bVar24;\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" ({ "{") (expression_statement "puVar32[9] = 0x100;" (assignment_expression "puVar32[9] = 0x100" (subscript_expression "puVar32[9]" (identifier "puVar32") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0x100")) (; ";")) (labeled_statement "LAB_00080c28:\n    *(short *)(puVar32 + 5) = sVar17 + 0x10;" (statement_identifier "LAB_00080c28") (: ":") (expression_statement "*(short *)(puVar32 + 5) = sVar17 + 0x10;" (assignment_expression "*(short *)(puVar32 + 5) = sVar17 + 0x10" (pointer_expression "*(short *)(puVar32 + 5)" (* "*") (cast_expression "(short *)(puVar32 + 5)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 5)" (( "(") (binary_expression "puVar32 + 5" (identifier "puVar32") (+ "+") (number_literal "5")) () ")")))) (= "=") (binary_expression "sVar17 + 0x10" (identifier "sVar17") (+ "+") (number_literal "0x10"))) (; ";"))) (expression_statement "*(byte *)((int)puVar32 + 0x11) = bVar24;" (assignment_expression "*(byte *)((int)puVar32 + 0x11) = bVar24" (pointer_expression "*(byte *)((int)puVar32 + 0x11)" (* "*") (cast_expression "(byte *)((int)puVar32 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x11)" (( "(") (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (identifier "bVar24")) (; ";")) (expression_statement "uVar25 = *(undefined4 *)(iVar21 + 0xc);" (assignment_expression "uVar25 = *(undefined4 *)(iVar21 + 0xc)" (identifier "uVar25") (= "=") (pointer_expression "*(undefined4 *)(iVar21 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0xc)" (( "(") (binary_expression "iVar21 + 0xc" (identifier "iVar21") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" (else "else") (compound_statement "{\nLAB_0008096c:\n    bVar3 = false;\njoined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }\n    uVar25 = *(undefined4 *)(iVar21 + 0xc);\n  }" ({ "{") (labeled_statement "LAB_0008096c:\n    bVar3 = false;" (statement_identifier "LAB_0008096c") (: ":") (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";"))) (labeled_statement "joined_r0x00080b94:\n    if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" (statement_identifier "joined_r0x00080b94") (: ":") (if_statement "if ((bVar18 & 4) == 0) {\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }\n    else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" (if "if") (parenthesized_expression "((bVar18 & 4) == 0)" (( "(") (binary_expression "(bVar18 & 4) == 0" (parenthesized_expression "(bVar18 & 4)" (( "(") (binary_expression "bVar18 & 4" (identifier "bVar18") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];\n      uVar23 = 0x240;\n      if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }\n      puVar32[9] = uVar23;\n      if (!bVar3) goto LAB_00080984;\nLAB_00080bcc:\n      cVar19 = cVar20 + '\x01';\nLAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;\n      *(short *)(puVar32 + 5) = sVar28;\n      if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }\n    }" ({ "{") (expression_statement "uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];" (assignment_expression "uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11]" (identifier "uVar29") (= "=") (binary_expression "*(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11]" (binary_expression "*(uint *)(iVar36 + 0x38) & puVar49[0x10]" (pointer_expression "*(uint *)(iVar36 + 0x38)" (* "*") (cast_expression "(uint *)(iVar36 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x38)" (( "(") (binary_expression "iVar36 + 0x38" (identifier "iVar36") (+ "+") (number_literal "0x38")) () ")")))) (& "&") (subscript_expression "puVar49[0x10]" (identifier "puVar49") ([ "[") (number_literal "0x10") (] "]"))) (| "|") (binary_expression "*(uint *)(iVar36 + 0x3c) & puVar49[0x11]" (pointer_expression "*(uint *)(iVar36 + 0x3c)" (* "*") (cast_expression "(uint *)(iVar36 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x3c)" (( "(") (binary_expression "iVar36 + 0x3c" (identifier "iVar36") (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (subscript_expression "puVar49[0x11]" (identifier "puVar49") ([ "[") (number_literal "0x11") (] "]"))))) (; ";")) (expression_statement "uVar23 = 0x240;" (assignment_expression "uVar23 = 0x240" (identifier "uVar23") (= "=") (number_literal "0x240")) (; ";")) (if_statement "if (uVar29 != 0) {\n        uVar23 = 0x200;\n      }" (if "if") (parenthesized_expression "(uVar29 != 0)" (( "(") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar23 = 0x200;\n      }" ({ "{") (expression_statement "uVar23 = 0x200;" (assignment_expression "uVar23 = 0x200" (identifier "uVar23") (= "=") (number_literal "0x200")) (; ";")) (} "}"))) (expression_statement "puVar32[9] = uVar23;" (assignment_expression "puVar32[9] = uVar23" (subscript_expression "puVar32[9]" (identifier "puVar32") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (if_statement "if (!bVar3) goto LAB_00080984;" (if "if") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")")) (goto_statement "goto LAB_00080984;" (goto "goto") (statement_identifier "LAB_00080984") (; ";"))) (labeled_statement "LAB_00080bcc:\n      cVar19 = cVar20 + '\x01';" (statement_identifier "LAB_00080bcc") (: ":") (expression_statement "cVar19 = cVar20 + '\x01';" (assignment_expression "cVar19 = cVar20 + '\x01'" (identifier "cVar19") (= "=") (binary_expression "cVar20 + '\x01'" (identifier "cVar20") (+ "+") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'")))) (; ";"))) (labeled_statement "LAB_000809a4:\n      *(char *)((int)puVar32 + 0x11) = cVar19;" (statement_identifier "LAB_000809a4") (: ":") (expression_statement "*(char *)((int)puVar32 + 0x11) = cVar19;" (assignment_expression "*(char *)((int)puVar32 + 0x11) = cVar19" (pointer_expression "*(char *)((int)puVar32 + 0x11)" (* "*") (cast_expression "(char *)((int)puVar32 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x11)" (( "(") (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (identifier "cVar19")) (; ";"))) (if_statement "if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(*(short *)((int)puVar6 + 0x2e) == 0)" (( "(") (binary_expression "*(short *)((int)puVar6 + 0x2e) == 0" (pointer_expression "*(short *)((int)puVar6 + 0x2e)" (* "*") (cast_expression "(short *)((int)puVar6 + 0x2e)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x2e)" (( "(") (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x2e")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1;" (assignment_expression "sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1" (identifier "sVar28") (= "=") (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17 + 1" (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n               sVar17" (cast_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" (( "(") (binary_expression "(*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)" (parenthesized_expression "(*(short *)(puVar49 + 0xc) * 0xf)" (( "(") (binary_expression "*(short *)(puVar49 + 0xc) * 0xf" (pointer_expression "*(short *)(puVar49 + 0xc)" (* "*") (cast_expression "(short *)(puVar49 + 0xc)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + 0xc)" (( "(") (binary_expression "puVar49 + 0xc" (identifier "puVar49") (+ "+") (number_literal "0xc")) () ")")))) (* "*") (number_literal "0xf")) () ")")) (/ "/") (cast_expression "(int)*(short *)((int)puVar6 + 0x2e)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)puVar6 + 0x2e)" (* "*") (cast_expression "(short *)((int)puVar6 + 0x2e)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x2e)" (( "(") (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x2e")) () ")")))))) () ")"))) (+ "+") (identifier "sVar17")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(short *)(puVar32 + 5) = sVar28;" (assignment_expression "*(short *)(puVar32 + 5) = sVar28" (pointer_expression "*(short *)(puVar32 + 5)" (* "*") (cast_expression "(short *)(puVar32 + 5)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 5)" (( "(") (binary_expression "puVar32 + 5" (identifier "puVar32") (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "sVar28")) (; ";")) (if_statement "if (uVar29 != 0) {\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }" (if "if") (parenthesized_expression "(uVar29 != 0)" (( "(") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar7 = *(uint **)(iVar36 + 0x28);\n        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);\n        if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }\n        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);\n        *(undefined2 *)(puVar32 + 5) = uVar16;\n      }" ({ "{") (expression_statement "puVar7 = *(uint **)(iVar36 + 0x28);" (assignment_expression "puVar7 = *(uint **)(iVar36 + 0x28)" (identifier "puVar7") (= "=") (pointer_expression "*(uint **)(iVar36 + 0x28)" (* "*") (cast_expression "(uint **)(iVar36 + 0x28)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar36 + 0x28)" (( "(") (binary_expression "iVar36 + 0x28" (identifier "iVar36") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "pcVar43 = (char *)(int)(short)(sVar17 + 0x10);" (assignment_expression "pcVar43 = (char *)(int)(short)(sVar17 + 0x10)" (identifier "pcVar43") (= "=") (cast_expression "(char *)(int)(short)(sVar17 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)(short)(sVar17 + 0x10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(short)(sVar17 + 0x10)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "(sVar17 + 0x10)" (( "(") (binary_expression "sVar17 + 0x10" (identifier "sVar17") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (if_statement "if (0 < *(int *)(pcVar39 + 0x5c)) {\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(pcVar39 + 0x5c))" (( "(") (binary_expression "0 < *(int *)(pcVar39 + 0x5c)" (number_literal "0") (< "<") (pointer_expression "*(int *)(pcVar39 + 0x5c)" (* "*") (cast_expression "(int *)(pcVar39 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar39 + 0x5c)" (( "(") (binary_expression "pcVar39 + 0x5c" (identifier "pcVar39") (+ "+") (number_literal "0x5c")) () ")"))))) () ")")) (compound_statement "{\n          pcVar40 = (char *)0x0;\n          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);\n          do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));\nLAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);\n        }" ({ "{") (expression_statement "pcVar40 = (char *)0x0;" (assignment_expression "pcVar40 = (char *)0x0" (identifier "pcVar40") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254)" (identifier "pcVar11") (= "=") (cast_expression "(code *)(PTR_LAB_0015b6d8 + 0x7254)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6d8 + 0x7254)" (( "(") (binary_expression "PTR_LAB_0015b6d8 + 0x7254" (identifier "PTR_LAB_0015b6d8") (+ "+") (number_literal "0x7254")) () ")")))) (; ";")) (do_statement "do {\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));" (do "do") (compound_statement "{\n            while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }\n            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }\n            pcVar43 = (char *)(int)sVar28;\n            pcVar40 = pcVar40 + 1;\n          }" ({ "{") (while_statement "while( true ) {\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);\n              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);\n              if (iVar8 == 0) goto LAB_00080d34;\n              sVar28 = (short)pcVar43;\n              if (0 < *(short *)(unaff_s6 + 2)) break;\n              pcVar40 = pcVar40 + 1;\n              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));\n              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;\n            }" ({ "{") (expression_statement "unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);" (assignment_expression "unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30)" (identifier "unaff_s6") (= "=") (cast_expression "(undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30)" (( "(") (binary_expression "*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30" (pointer_expression "*(int *)(pcVar39 + 100)" (* "*") (cast_expression "(int *)(pcVar39 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar39 + 100)" (( "(") (binary_expression "pcVar39 + 100" (identifier "pcVar39") (+ "+") (number_literal "100")) () ")")))) (+ "+") (binary_expression "(int)pcVar40 * 0x30" (cast_expression "(int)pcVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar40")) (* "*") (number_literal "0x30"))) () ")")))) (; ";")) (expression_statement "iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);" (assignment_expression "iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49)" (identifier "iVar8") (= "=") (call_expression "(*pcVar11)(*unaff_s6,puVar7,puVar49)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(*unaff_s6,puVar7,puVar49)" (( "(") (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6")) (, ",") (identifier "puVar7") (, ",") (identifier "puVar49") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_00080d34;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00080d34;" (goto "goto") (statement_identifier "LAB_00080d34") (; ";"))) (expression_statement "sVar28 = (short)pcVar43;" (assignment_expression "sVar28 = (short)pcVar43" (identifier "sVar28") (= "=") (cast_expression "(short)pcVar43" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "pcVar43"))) (; ";")) (if_statement "if (0 < *(short *)(unaff_s6 + 2)) break;" (if "if") (parenthesized_expression "(0 < *(short *)(unaff_s6 + 2))" (( "(") (binary_expression "0 < *(short *)(unaff_s6 + 2)" (number_literal "0") (< "<") (pointer_expression "*(short *)(unaff_s6 + 2)" (* "*") (cast_expression "(short *)(unaff_s6 + 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s6 + 2)" (( "(") (binary_expression "unaff_s6 + 2" (identifier "unaff_s6") (+ "+") (number_literal "2")) () ")"))))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar40 = pcVar40 + 1;" (assignment_expression "pcVar40 = pcVar40 + 1" (identifier "pcVar40") (= "=") (binary_expression "pcVar40 + 1" (identifier "pcVar40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));" (assignment_expression "pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2))" (identifier "pcVar43") (= "=") (cast_expression "(char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)(short)(sVar28 + *(short *)(unaff_s6 + 2))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(short)(sVar28 + *(short *)(unaff_s6 + 2))" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "(sVar28 + *(short *)(unaff_s6 + 2))" (( "(") (binary_expression "sVar28 + *(short *)(unaff_s6 + 2)" (identifier "sVar28") (+ "+") (pointer_expression "*(short *)(unaff_s6 + 2)" (* "*") (cast_expression "(short *)(unaff_s6 + 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s6 + 2)" (( "(") (binary_expression "unaff_s6 + 2" (identifier "unaff_s6") (+ "+") (number_literal "2")) () ")"))))) () ")")))))) (; ";")) (if_statement "if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;" (if "if") (parenthesized_expression "(*(int *)(pcVar39 + 0x5c) <= (int)pcVar40)" (( "(") (binary_expression "*(int *)(pcVar39 + 0x5c) <= (int)pcVar40" (pointer_expression "*(int *)(pcVar39 + 0x5c)" (* "*") (cast_expression "(int *)(pcVar39 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar39 + 0x5c)" (( "(") (binary_expression "pcVar39 + 0x5c" (identifier "pcVar39") (+ "+") (number_literal "0x5c")) () ")")))) (<= "<=") (cast_expression "(int)pcVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar40"))) () ")")) (goto_statement "goto LAB_00080d34;" (goto "goto") (statement_identifier "LAB_00080d34") (; ";"))) (} "}"))) (if_statement "if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {\n              sVar28 = sVar28 + -1;\n            }\n            else {\n              sVar28 = sVar28 + -0x14;\n            }" (if "if") (parenthesized_expression "((*(ushort *)(unaff_s6 + 3) & 0x82) == 0)" (( "(") (binary_expression "(*(ushort *)(unaff_s6 + 3) & 0x82) == 0" (parenthesized_expression "(*(ushort *)(unaff_s6 + 3) & 0x82)" (( "(") (binary_expression "*(ushort *)(unaff_s6 + 3) & 0x82" (pointer_expression "*(ushort *)(unaff_s6 + 3)" (* "*") (cast_expression "(ushort *)(unaff_s6 + 3)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s6 + 3)" (( "(") (binary_expression "unaff_s6 + 3" (identifier "unaff_s6") (+ "+") (number_literal "3")) () ")")))) (& "&") (number_literal "0x82")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              sVar28 = sVar28 + -1;\n            }" ({ "{") (expression_statement "sVar28 = sVar28 + -1;" (assignment_expression "sVar28 = sVar28 + -1" (identifier "sVar28") (= "=") (binary_expression "sVar28 + -1" (identifier "sVar28") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else {\n              sVar28 = sVar28 + -0x14;\n            }" (else "else") (compound_statement "{\n              sVar28 = sVar28 + -0x14;\n            }" ({ "{") (expression_statement "sVar28 = sVar28 + -0x14;" (assignment_expression "sVar28 = sVar28 + -0x14" (identifier "sVar28") (= "=") (binary_expression "sVar28 + -0x14" (identifier "sVar28") (+ "+") (number_literal "-0x14"))) (; ";")) (} "}")))) (expression_statement "pcVar43 = (char *)(int)sVar28;" (assignment_expression "pcVar43 = (char *)(int)sVar28" (identifier "pcVar43") (= "=") (cast_expression "(char *)(int)sVar28" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)sVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar28")))) (; ";")) (expression_statement "pcVar40 = pcVar40 + 1;" (assignment_expression "pcVar40 = pcVar40 + 1" (identifier "pcVar40") (= "=") (binary_expression "pcVar40 + 1" (identifier "pcVar40") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)pcVar40 < *(int *)(pcVar39 + 0x5c))" (( "(") (binary_expression "(int)pcVar40 < *(int *)(pcVar39 + 0x5c)" (cast_expression "(int)pcVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar40")) (< "<") (pointer_expression "*(int *)(pcVar39 + 0x5c)" (* "*") (cast_expression "(int *)(pcVar39 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar39 + 0x5c)" (( "(") (binary_expression "pcVar39 + 0x5c" (identifier "pcVar39") (+ "+") (number_literal "0x5c")) () ")"))))) () ")")) (; ";")) (labeled_statement "LAB_00080d34:\n          sVar28 = *(short *)(puVar32 + 5);" (statement_identifier "LAB_00080d34") (: ":") (expression_statement "sVar28 = *(short *)(puVar32 + 5);" (assignment_expression "sVar28 = *(short *)(puVar32 + 5)" (identifier "sVar28") (= "=") (pointer_expression "*(short *)(puVar32 + 5)" (* "*") (cast_expression "(short *)(puVar32 + 5)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 5)" (( "(") (binary_expression "puVar32 + 5" (identifier "puVar32") (+ "+") (number_literal "5")) () ")"))))) (; ";"))) (} "}"))) (expression_statement "uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);" (assignment_expression "uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43)" (identifier "uVar16") (= "=") (call_expression "(*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43)" (parenthesized_expression "(*(code *)(puVar5 + 0x358))" (( "(") (pointer_expression "*(code *)(puVar5 + 0x358)" (* "*") (cast_expression "(code *)(puVar5 + 0x358)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x358)" (( "(") (binary_expression "puVar5 + 0x358" (identifier "puVar5") (+ "+") (number_literal "0x358")) () ")")))) () ")")) (argument_list "((int)sVar28,pcVar43)" (( "(") (cast_expression "(int)sVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar28")) (, ",") (identifier "pcVar43") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(puVar32 + 5) = uVar16;" (assignment_expression "*(undefined2 *)(puVar32 + 5) = uVar16" (pointer_expression "*(undefined2 *)(puVar32 + 5)" (* "*") (cast_expression "(undefined2 *)(puVar32 + 5)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 5)" (( "(") (binary_expression "puVar32 + 5" (identifier "puVar32") (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" (else "else") (compound_statement "{\n      uVar29 = 0;\n      puVar32[9] = 0x240;\n      if (bVar3) goto LAB_00080bcc;\nLAB_00080984:\n      cVar19 = '\0';\n      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;\n      if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;\n      *(undefined1 *)((int)puVar32 + 0x11) = 0;\n      if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }\n      *(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;\n    }" ({ "{") (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar32[9] = 0x240;" (assignment_expression "puVar32[9] = 0x240" (subscript_expression "puVar32[9]" (identifier "puVar32") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0x240")) (; ";")) (if_statement "if (bVar3) goto LAB_00080bcc;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto LAB_00080bcc;" (goto "goto") (statement_identifier "LAB_00080bcc") (; ";"))) (labeled_statement "LAB_00080984:\n      cVar19 = '\0';" (statement_identifier "LAB_00080984") (: ":") (expression_statement "cVar19 = '\0';" (assignment_expression "cVar19 = '\0'" (identifier "cVar19") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (if_statement "if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;" (if "if") (parenthesized_expression "(((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0))" (( "(") (binary_expression "((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)" (parenthesized_expression "((puVar6[9] & 0x20) != 0)" (( "(") (binary_expression "(puVar6[9] & 0x20) != 0" (parenthesized_expression "(puVar6[9] & 0x20)" (( "(") (binary_expression "puVar6[9] & 0x20" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(cVar19 = '\0', puVar49[9] != 0)" (( "(") (comma_expression "cVar19 = '\0', puVar49[9] != 0" (assignment_expression "cVar19 = '\0'" (identifier "cVar19") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (, ",") (binary_expression "puVar49[9] != 0" (subscript_expression "puVar49[9]" (identifier "puVar49") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_000809a4;" (goto "goto") (statement_identifier "LAB_000809a4") (; ";"))) (if_statement "if (((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;" (if "if") (parenthesized_expression "(((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0))))" (( "(") (binary_expression "((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||\n         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))" (parenthesized_expression "((uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0))))" (( "(") (binary_expression "(uVar29 != 0) ||\n          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))" (parenthesized_expression "(uVar29 != 0)" (( "(") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))" (( "(") (parenthesized_expression "(((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0))" (( "(") (binary_expression "((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||\n           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)" (parenthesized_expression "((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc)))" (( "(") (binary_expression "(*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||\n            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))" (binary_expression "(*(byte *)((int)puVar49 + 0x37) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar49 + 0x37) & 0x20)" (( "(") (binary_expression "*(byte *)((int)puVar49 + 0x37) & 0x20" (pointer_expression "*(byte *)((int)puVar49 + 0x37)" (* "*") (cast_expression "(byte *)((int)puVar49 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar49 + 0x37)" (( "(") (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar49")) (+ "+") (number_literal "0x37")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))" (( "(") (binary_expression "*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc)" (pointer_expression "*(short *)((int)puVar6 + 0x2e)" (* "*") (cast_expression "(short *)((int)puVar6 + 0x2e)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x2e)" (( "(") (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x2e")) () ")")))) (<= "<=") (pointer_expression "*(short *)(puVar49 + 0xc)" (* "*") (cast_expression "(short *)(puVar49 + 0xc)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + 0xc)" (( "(") (binary_expression "puVar49 + 0xc" (identifier "puVar49") (+ "+") (number_literal "0xc")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)" (( "(") (binary_expression "(*(ushort *)(pcVar39 + 0x2c) & 4) != 0" (parenthesized_expression "(*(ushort *)(pcVar39 + 0x2c) & 4)" (( "(") (binary_expression "*(ushort *)(pcVar39 + 0x2c) & 4" (pointer_expression "*(ushort *)(pcVar39 + 0x2c)" (* "*") (cast_expression "(ushort *)(pcVar39 + 0x2c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar39 + 0x2c)" (( "(") (binary_expression "pcVar39 + 0x2c" (identifier "pcVar39") (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))" (( "(") (parenthesized_expression "(*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0))" (( "(") (binary_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||\n          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)" (binary_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x5dc8)" (* "*") (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x5dc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x5dc8)" (( "(") (binary_expression "PTR_DAT_0015b5d8 + -0x5dc8" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x5dc8")) () ")")))) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)" (( "(") (binary_expression "(*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20)" (( "(") (binary_expression "*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20" (pointer_expression "*(ushort *)(**(int **)pcVar39 + 0x4c)" (* "*") (cast_expression "(ushort *)(**(int **)pcVar39 + 0x4c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)pcVar39 + 0x4c)" (( "(") (binary_expression "**(int **)pcVar39 + 0x4c" (pointer_expression "**(int **)pcVar39" (* "*") (pointer_expression "*(int **)pcVar39" (* "*") (cast_expression "(int **)pcVar39" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar39")))) (+ "+") (number_literal "0x4c")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00080a28;" (goto "goto") (statement_identifier "LAB_00080a28") (; ";"))) (expression_statement "*(undefined1 *)((int)puVar32 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)puVar32 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)puVar32 + 0x11)" (* "*") (cast_expression "(undefined1 *)((int)puVar32 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x11)" (( "(") (binary_expression "(int)puVar32 + 0x11" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(short *)((int)puVar6 + 0x2e) == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(*(short *)((int)puVar6 + 0x2e) == 0)" (( "(") (binary_expression "*(short *)((int)puVar6 + 0x2e) == 0" (pointer_expression "*(short *)((int)puVar6 + 0x2e)" (* "*") (cast_expression "(short *)((int)puVar6 + 0x2e)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x2e)" (( "(") (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x2e")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "*(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1;" (assignment_expression "*(short *)(puVar32 + 5) =\n           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1" (pointer_expression "*(short *)(puVar32 + 5)" (* "*") (cast_expression "(short *)(puVar32 + 5)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 5)" (( "(") (binary_expression "puVar32 + 5" (identifier "puVar32") (+ "+") (number_literal "5")) () ")")))) (= "=") (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17 + 1" (binary_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +\n           sVar17" (cast_expression "(short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e))" (( "(") (binary_expression "(*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)" (parenthesized_expression "(*(short *)(puVar49 + 0xc) * 0xf)" (( "(") (binary_expression "*(short *)(puVar49 + 0xc) * 0xf" (pointer_expression "*(short *)(puVar49 + 0xc)" (* "*") (cast_expression "(short *)(puVar49 + 0xc)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + 0xc)" (( "(") (binary_expression "puVar49 + 0xc" (identifier "puVar49") (+ "+") (number_literal "0xc")) () ")")))) (* "*") (number_literal "0xf")) () ")")) (/ "/") (cast_expression "(int)*(short *)((int)puVar6 + 0x2e)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)puVar6 + 0x2e)" (* "*") (cast_expression "(short *)((int)puVar6 + 0x2e)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x2e)" (( "(") (binary_expression "(int)puVar6 + 0x2e" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x2e")) () ")")))))) () ")"))) (+ "+") (identifier "sVar17")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))))) (expression_statement "uVar25 = *(undefined4 *)(iVar21 + 0xc);" (assignment_expression "uVar25 = *(undefined4 *)(iVar21 + 0xc)" (identifier "uVar25") (= "=") (pointer_expression "*(undefined4 *)(iVar21 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0xc)" (( "(") (binary_expression "iVar21 + 0xc" (identifier "iVar21") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))))) (expression_statement "puVar30 = puVar32;" (assignment_expression "puVar30 = puVar32" (identifier "puVar30") (= "=") (identifier "puVar32")) (; ";")) (expression_statement "pcVar31 = pcVar44;" (assignment_expression "pcVar31 = pcVar44" (identifier "pcVar31") (= "=") (identifier "pcVar44")) (; ";")) (expression_statement "(*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);" (call_expression "(*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14)" (parenthesized_expression "(*(code *)(puVar4 + -0x4dc4))" (( "(") (pointer_expression "*(code *)(puVar4 + -0x4dc4)" (* "*") (cast_expression "(code *)(puVar4 + -0x4dc4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + -0x4dc4)" (( "(") (binary_expression "puVar4 + -0x4dc4" (identifier "puVar4") (+ "+") (number_literal "-0x4dc4")) () ")")))) () ")")) (argument_list "(uVar25,iVar21 + 0x14)" (( "(") (identifier "uVar25") (, ",") (binary_expression "iVar21 + 0x14" (identifier "iVar21") (+ "+") (number_literal "0x14")) () ")"))) (; ";")) (expression_statement "iVar8 = (*pcVar9)(param_1,puVar32);" (assignment_expression "iVar8 = (*pcVar9)(param_1,puVar32)" (identifier "iVar8") (= "=") (call_expression "(*pcVar9)(param_1,puVar32)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(param_1,puVar32)" (( "(") (identifier "param_1") (, ",") (identifier "puVar32") () ")")))) (; ";")) (expression_statement "*(short *)((int)puVar32 + 0x16) = sVar17;" (assignment_expression "*(short *)((int)puVar32 + 0x16) = sVar17" (pointer_expression "*(short *)((int)puVar32 + 0x16)" (* "*") (cast_expression "(short *)((int)puVar32 + 0x16)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + 0x16)" (( "(") (binary_expression "(int)puVar32 + 0x16" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x16")) () ")")))) (= "=") (identifier "sVar17")) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_00080a6c;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00080a6c;" (goto "goto") (statement_identifier "LAB_00080a6c") (; ";"))) (labeled_statement "LAB_00080a28:\n  pcVar31 = (char *)0x0;" (statement_identifier "LAB_00080a28") (: ":") (expression_statement "pcVar31 = (char *)0x0;" (assignment_expression "pcVar31 = (char *)0x0" (identifier "pcVar31") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar30 = puVar49;" (assignment_expression "puVar30 = puVar49" (identifier "puVar30") (= "=") (identifier "puVar49")) (; ";")) (expression_statement "iVar8 = FUN_0007dec0(param_1,iVar36);" (assignment_expression "iVar8 = FUN_0007dec0(param_1,iVar36)" (identifier "iVar8") (= "=") (call_expression "FUN_0007dec0(param_1,iVar36)" (identifier "FUN_0007dec0") (argument_list "(param_1,iVar36)" (( "(") (identifier "param_1") (, ",") (identifier "iVar36") () ")")))) (; ";")) (if_statement "if (param_1[5] == 1) {\n    puVar6[9] = puVar6[9] | 0x100;\n  }" (if "if") (parenthesized_expression "(param_1[5] == 1)" (( "(") (binary_expression "param_1[5] == 1" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    puVar6[9] = puVar6[9] | 0x100;\n  }" ({ "{") (expression_statement "puVar6[9] = puVar6[9] | 0x100;" (assignment_expression "puVar6[9] = puVar6[9] | 0x100" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (binary_expression "puVar6[9] | 0x100" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (| "|") (number_literal "0x100"))) (; ";")) (} "}"))) (if_statement "if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))\n  goto LAB_00080a6c;" (if "if") (parenthesized_expression "((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))" (( "(") (binary_expression "(*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0)" (parenthesized_expression "(*(int *)(iVar36 + 0x44) != 0)" (( "(") (binary_expression "*(int *)(iVar36 + 0x44) != 0" (pointer_expression "*(int *)(iVar36 + 0x44)" (* "*") (cast_expression "(int *)(iVar36 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x44)" (( "(") (binary_expression "iVar36 + 0x44" (identifier "iVar36") (+ "+") (number_literal "0x44")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(puVar49 = (uint *)puVar49[5], iVar8 != 0)" (( "(") (comma_expression "puVar49 = (uint *)puVar49[5], iVar8 != 0" (assignment_expression "puVar49 = (uint *)puVar49[5]" (identifier "puVar49") (= "=") (cast_expression "(uint *)puVar49[5]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar49[5]" (identifier "puVar49") ([ "[") (number_literal "5") (] "]")))) (, ",") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00080a6c;" (goto "goto") (statement_identifier "LAB_00080a6c") (; ";"))) (labeled_statement "LAB_00080bf4:\n  cVar20 = cVar20 + '\x01';" (statement_identifier "LAB_00080bf4") (: ":") (expression_statement "cVar20 = cVar20 + '\x01';" (assignment_expression "cVar20 = cVar20 + '\x01'" (identifier "cVar20") (= "=") (binary_expression "cVar20 + '\x01'" (identifier "cVar20") (+ "+") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'")))) (; ";"))) (if_statement "if (puVar49 == (uint *)0x0) goto code_r0x00080c04;" (if "if") (parenthesized_expression "(puVar49 == (uint *)0x0)" (( "(") (binary_expression "puVar49 == (uint *)0x0" (identifier "puVar49") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto code_r0x00080c04;" (goto "goto") (statement_identifier "code_r0x00080c04") (; ";"))) (goto_statement "goto LAB_0008081c;" (goto "goto") (statement_identifier "LAB_0008081c") (; ";")) (labeled_statement "LAB_00080b70:\n  bVar18 = *(byte *)((int)puVar49 + 0x37);" (statement_identifier "LAB_00080b70") (: ":") (expression_statement "bVar18 = *(byte *)((int)puVar49 + 0x37);" (assignment_expression "bVar18 = *(byte *)((int)puVar49 + 0x37)" (identifier "bVar18") (= "=") (pointer_expression "*(byte *)((int)puVar49 + 0x37)" (* "*") (cast_expression "(byte *)((int)puVar49 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar49 + 0x37)" (( "(") (binary_expression "(int)puVar49 + 0x37" (cast_expression "(int)puVar49" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar49")) (+ "+") (number_literal "0x37")) () ")"))))) (; ";"))) (if_statement "if ((bVar18 & 0xc0) == 0xc0) {\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }" (if "if") (parenthesized_expression "((bVar18 & 0xc0) == 0xc0)" (( "(") (binary_expression "(bVar18 & 0xc0) == 0xc0" (parenthesized_expression "(bVar18 & 0xc0)" (( "(") (binary_expression "bVar18 & 0xc0" (identifier "bVar18") (& "&") (number_literal "0xc0")) () ")")) (== "==") (number_literal "0xc0")) () ")")) (compound_statement "{\n    puVar32[9] = 0x100;\n    bVar24 = cVar20 + 1;\n    goto LAB_00080c28;\n  }" ({ "{") (expression_statement "puVar32[9] = 0x100;" (assignment_expression "puVar32[9] = 0x100" (subscript_expression "puVar32[9]" (identifier "puVar32") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0x100")) (; ";")) (expression_statement "bVar24 = cVar20 + 1;" (assignment_expression "bVar24 = cVar20 + 1" (identifier "bVar24") (= "=") (binary_expression "cVar20 + 1" (identifier "cVar20") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00080c28;" (goto "goto") (statement_identifier "LAB_00080c28") (; ";")) (} "}"))) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (goto_statement "goto joined_r0x00080b94;" (goto "goto") (statement_identifier "joined_r0x00080b94") (; ";")) (labeled_statement "code_r0x00080c04:\n  iVar8 = 0;" (statement_identifier "code_r0x00080c04") (: ":") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_00080a6c;" (goto "goto") (statement_identifier "LAB_00080a6c") (; ";")) (} "}")))

int function_1(type_1 *pBuilder,type_2 mPrereq)

{
  type_3 uVar1;
  type_3 uVar2;
  bool bVar3;
  type_4 *var_48;
  int *var_18;
  type_5 *pTVar6;
  type_6 *pIVar7;
  type_7 *var_3;
  type_8 *pcVar9;
  int var_7;
  type_9 var_11;
  type_10 uVar23;
  type_11 *pEVar11;
  char var_46;
  type_8 *pcVar12;
  type_12 LVar20;
  short var_43;
  int *piVar13;
  int var_15;
  int var_37;
  int var_36;
  int var_28;
  type_13 *var_24;
  type_3 *var_38;
  type_14 *pWVar25;
  type_9 bVar29;
  type_15 *var_12;
  type_8 *pcVar27;
  type_13 *var_21;
  short var_47;
  short *var_16;
  short *var_44;
  type_13 **ppWVar32;
  type_16 var_29;
  type_17 *pWVar35;
  type_6 *in_a2;
  type_6 *var_9;
  type_18 *in_a3;
  type_18 *pWVar37;
  type_6 *pIVar38;
  type_19 *var_45;
  type_13 *var_23;
  type_3 *var_34;
  int var_35;
  type_20 *pSrc;
  type_16 *var_40;
  type_18 *pWVar44;
  type_18 *var_6;
  type_16 var_33;
  int var_39;
  type_18 *var_8;
  type_18 *pWVar49;
  type_16 *var_20;
  type_12 *pLVar51;
  type_13 *var_22;
  type_18 *var_5;
  type_5 *var_13;
  int var_27;
  type_4 *var_19;
  type_4 *var_32;
  type_6 *var_1;
  type_21 *in_stack_fffffc30;
  type_22 in_stack_fffffc34;
  type_22 in_stack_fffffc3c;
  type_1 WStack_364;
  type_16 var_30;
  type_22 uStack_344;
  type_22 uStack_340;
  type_22 uStack_33c;
  type_22 uStack_338;
  type_22 uStack_334;
  type_22 uStack_330;
  type_22 uStack_32c;
  type_22 uStack_328;
  type_22 uStack_324;
  type_22 uStack_320;
  type_22 uStack_31c;
  type_22 uStack_318;
  type_22 uStack_314;
  type_7 WStack_310;
  type_3 auStack_2d8 [4];
  type_16 auStack_2d0 [2];
  type_3 auStack_2c8 [20];
  type_18 *pWStack_2a0;
  type_14 *pWStack_29c;
  type_10 uStack_298;
  int iStack_294;
  type_13 *pWStack_28c;
  int var_41;
  type_6 *pIStack_100;
  type_20 *pSStack_fc;
  type_18 *pWStack_f8;
  type_18 *pWStack_f4;
  type_1 *pWStack_f0;
  type_18 *pWStack_ec;
  type_5 *pTStack_e8;
  type_6 *pIStack_e4;
  type_6 *pIStack_e0;
  type_8 *pcStack_dc;
  type_6 *pIStack_d0;
  type_18 *pWStack_cc;
  type_22 uStack_c4;
  short var_42;
  type_23 aiColumnPk;
  type_6 sPk;
  type_12 aiRowEstPk [2];
  
  var_32 = PTR___stack_chk_guard_0015ba2c;
  pIVar38 = (type_6 *)pBuilder->pNew;
  pWVar25 = pBuilder->pWC;
  pWVar44 = pBuilder->pWInfo;
  var_18 = *(int **)PTR___stack_chk_guard_0015ba2c;
  aiColumnPk = -1;
  pSrc = (type_20 *)
         ((int)((type_14 *)pWVar44->pTabList)->aStatic +
         (type_16)*(type_9 *)&pIVar38->zColAff * 0x48 + -0x10);
  pTVar6 = pSrc->pTab;
  var_1 = pSrc->pIBIndex;
  var_9 = in_a2;
  pWVar37 = in_a3;
  if (var_1 == (type_6 *)0x0) {
    if ((pTVar6->tabFlags & 0x20) == 0) {
      var_1 = &sPk;
      var_9 = (type_6 *)0x48;
      (*(type_8 *)PTR_memset_0015b9b4)(var_1,0);
      sPk.nKeyCol = 1;
      sPk.nColumn = 1;
      sPk.pTable = pTVar6;
      sPk.onError = '\x05';
      aiRowEstPk[1] = 0;
      sPk._55_1_ = sPk._55_1_ & 0x3f | 0xc0;
      sPk.szIdxRow = pTVar6->szTabRow;
      sPk.aiColumn = &aiColumnPk;
      var_8 = (type_18 *)(int)pTVar6->nRowLogEst;
      sPk.aiRowLogEst = aiRowEstPk;
      aiRowEstPk[0] = pTVar6->nRowLogEst;
      if (-1 < (char)(pSrc->fg).field_0x1) {
        sPk.pNext = pSrc->pTab->pIndex;
      }
    }
    else {
      var_1 = pTVar6->pIndex;
      var_8 = (type_18 *)(int)pTVar6->nRowLogEst;
    }
  }
  else {
    var_8 = (type_18 *)(int)pTVar6->nRowLogEst;
  }
  if ((int)var_8 < 0xb) {
    var_3 = pBuilder->pOrSet;
    pIVar7 = (type_6 *)0x0;
  }
  else {
    pIVar7 = (type_6 *)(*(type_8 *)(var_2 + 0x5c64))(var_8);
    var_3 = pBuilder->pOrSet;
  }
  if ((((((var_3 == (type_7 *)0x0) && ((pWVar44->wctrlFlags & 0x20) == 0)) &&
        ((pWVar44->pParse->db->flags & 0x8000) != 0)) &&
       ((pSrc->pIBIndex == (type_6 *)0x0 && (-1 < (char)(pSrc->fg).field_0x1)))) &&
      ((pTVar6->tabFlags & 0x20) == 0)) && (((type_16)pSrc->fg & 0x140000) == 0)) {
    var_42 = (short)pIVar7 + (short)var_8;
    pWVar49 = (type_18 *)pWVar25->a;
    pcVar12 = (type_8 *)(var_2 + -0x5530);
    pcVar27 = (type_8 *)(var_4 + 0x358);
    var_6 = (type_18 *)(pWVar49->aiCurOnePass + pWVar25->nTerm * 0xc + -6);
    pcVar9 = (type_8 *)(var_2 + -0x51d8);
    var_5 = pWVar49;
LAB_00080e28:
    var_8 = pWVar49;
    pWVar49 = var_5;
    var_13 = pTVar6;
    if (var_5 < var_6) {
      do {
        var_9 = (type_6 *)pIVar38->aiRowLogEst;
        var_8 = (type_18 *)&pWVar49->sorted;
        var_5 = var_8;
        if ((pWVar49->iContinue & (type_16)var_9) == 0 &&
            (pWVar49->iBreak & (type_16)pIVar38->pTable) == 0) {
          pWVar37 = (type_18 *)0x0;
          var_9 = (type_6 *)0x0;
          var_7 = (*pcVar12)(pWVar49,pSrc);
          if (var_7 != 0) goto code_r0x00080e78;
        }
        pWVar49 = var_8;
        if (var_6 <= var_8) break;
      } while( true );
    }
  }
  var_48 = var_4;
  var_19 = var_2;
  var_46 = '\0';
  var_6 = pWVar44;
  pWVar49 = var_8;
  if (var_1 != (type_6 *)0x0) {
    pcVar9 = (type_8 *)(var_2 + -0x51d8);
    var_8 = var_5;
LAB_0008081c:
    var_9 = (type_6 *)var_1->pPartIdxWhere;
    if (((var_9 == (type_6 *)0x0) ||
        (var_7 = var_10(pSrc->iCursor,pWVar25,(type_11 *)var_9), var_7 != 0)) &&
       (-1 < (char)var_1->field_0x38)) {
      var_43 = *var_1->aiRowLogEst;
      pWVar49 = (type_18 *)(int)var_43;
      (((type_24 *)&pIVar38->pSchema)->vtab).idxNum = 0;
      *(type_25 *)&pIVar38->aSortOrder = 0;
      pIVar38->zName = (char *)in_a2;
      pIVar38->aColExpr = (type_15 *)0x0;
      *(type_10 *)((int)&pIVar38->zColAff + 1) = '\0';
      *(type_12 *)((int)&pIVar38->zColAff + 2) = 0;
      *(short *)((int)&pIVar38->pNext + 2) = var_43;
      pIVar38->azColl = &var_1->zName;
      pIVar38->aiColumn = (type_23 *)in_a3;
      var_11 = var_1->field_0x37;
      bVar29 = var_11 & 0x20;
      if ((var_11 & 0x20) == 0) {
        var_12 = pBuilder->pWInfo->pOrderBy;
        if ((var_12 != (type_15 *)0x0) && (0 < var_12->nExpr)) {
          var_13 = (type_5 *)pSrc->iCursor;
          var_45 = var_12->a;
          var_7 = 0;
LAB_000808d4:
          for (var_8 = (type_18 *)var_45->pExpr; var_8 != (type_18 *)0x0;
              var_8 = (type_18 *)var_8->pResultSet) {
            while( true ) {
              if (((type_16)var_8->pTabList & 0x1000) == 0) {
                pIVar7 = var_1;
                if ((*(char *)&var_8->pParse != -0x62) ||
                   (var_13 !=
                    (type_5 *)((type_26 *)(var_8->aiCurOnePass + 1))->
                             leftColumn)) {
                  if ((var_1->aColExpr != (type_15 *)0x0) && (var_1->nKeyCol != 0)) {
                    var_7 = var_14();
                    return var_7;
                  }
                  goto LAB_00080938;
                }
                var_15 = var_8->iContinue;
                if (var_15 < 0) goto LAB_00080b70;
                if (var_1->nKeyCol == 0) goto LAB_00080938;
                var_16 = var_1->aiColumn;
                if (var_15 == *var_16) goto LAB_00080b70;
                var_44 = var_16 + var_1->nKeyCol;
                goto LAB_00080b5c;
              }
              if (((type_16)var_8->pTabList & 0x40000) == 0) break;
              var_8 = *(type_18 **)(*(int *)&var_8->iLimit + 4);
              if (var_8 == (type_18 *)0x0) goto LAB_0008090c;
            }
          }
LAB_0008090c:
                    /* WARNING: Does not return */
          pcVar9 = (type_8 *)var_17(0);
          (*pcVar9)();
        }
        goto LAB_0008095c;
      }
      if ((var_11 & 0xc0) == 0xc0) {
        bVar29 = 0;
        pIVar38->pPartIdxWhere = (type_11 *)0x100;
        goto LAB_00080c28;
      }
      goto LAB_0008096c;
    }
    var_5 = var_8;
    if (pSrc->pIBIndex == (type_6 *)0x0) {
      var_1 = var_1->pNext;
      goto LAB_00080bf4;
    }
  }
  var_8 = var_5;
  var_7 = 0;
LAB_00080a6c:
  if (var_18 == *(int **)var_32) {
    return var_7;
  }
  pcVar9 = whereLoopAddOr;
  var_19 = PTR___stack_chk_fail_0015ba10;
  (*(type_8 *)PTR___stack_chk_fail_0015ba10)();
  var_32 = var_19 + 0xe2508;
  piVar13 = *(int **)(var_19 + 0xda984);
  pTStack_e8 = var_13;
  pIStack_e0 = var_1;
  pWStack_f0 = pBuilder;
  pcStack_dc = pcVar9;
  pIStack_e4 = pIVar7;
  pWStack_ec = var_8;
  pWStack_f4 = pWVar49;
  pWStack_f8 = var_6;
  pSStack_fc = pSrc;
  pIStack_100 = pIVar38;
  pWVar25 = (type_14 *)var_18[1];
  var_20 = (type_16 *)var_18[3];
  var_30 = 0;
  uStack_344 = 0;
  uStack_340 = 0;
  uStack_33c = 0;
  uStack_338 = 0;
  uStack_334 = 0;
  uStack_330 = 0;
  var_22 = pWVar25->a + pWVar25->nTerm;
  uStack_32c = 0;
  uStack_328 = 0;
  uStack_324 = 0;
  uStack_320 = 0;
  uStack_31c = 0;
  uStack_318 = 0;
  uStack_314 = 0;
  var_21 = pWVar25->a;
  var_41 = *piVar13;
  pWStack_cc = pWVar37;
  pIStack_d0 = var_9;
  var_7 = *(int *)(*var_18 + 4) + 8 + (type_16)*(type_9 *)(var_20 + 4) * 0x48;
  var_15 = *(int *)(var_7 + 0x28);
  if (var_21 < var_22) {
    var_37 = *(int *)(var_19 + 0xda5b4);
    var_36 = *(int *)(var_19 + 0xda630);
    var_28 = *(int *)(var_19 + 0xda66c);
    var_19 = var_32;
    do {
      while (((var_21->eOperator & 0x200) == 0 ||
             (pWVar35 = (var_21->u).pOrInfo,
             (*(type_16 *)&pWVar35->indexable & var_20[2]) == 0 &&
             ((type_16)pWVar35->indexable & var_20[3]) == 0))) {
        var_21 = var_21 + 1;
        if (var_22 <= var_21) goto LAB_00081208;
      }
      WStack_364.pWInfo = (type_18 *)*var_18;
      WStack_364.pWC = *(type_14 **)(var_18 + 1);
      WStack_364.pNew = (type_27 *)var_18[3];
      WStack_364.bldFlags = var_18[5];
      WStack_364.iPlanLimit = var_18[6];
      var_24 = (pWVar35->wc).a + (pWVar35->wc).nTerm;
      WStack_364.pOrderBy = (type_15 *)0x0;
      var_23 = (pWVar35->wc).a;
      WStack_364.pOrSet = &WStack_310;
      if (var_23 < var_24) {
        var_27 = 0;
        bVar3 = true;
        do {
          if ((var_23->eOperator & 0x400) == 0) {
            if (var_23->leftCursor == var_15) {
              pWStack_2a0 = pWVar25->pWInfo;
              uStack_298 = ',';
              iStack_294 = 1;
              WStack_364.pWC = (type_14 *)&pWStack_2a0;
              pWStack_29c = pWVar25;
              pWStack_28c = var_23;
              if (*(int *)(*(int *)(var_7 + 0x10) + 0x38) != 0) goto LAB_00081310;
LAB_000813ec:
              WStack_310.n = 0;
              var_27 = function_1(&WStack_364,var_25(in_stack_fffffc30,in_stack_fffffc34));
              var_32 = var_19;
              goto joined_r0x00081334;
            }
          }
          else {
            WStack_364.pWC = *(type_14 **)&var_23->u;
            if (*(int *)(*(int *)(var_7 + 0x10) + 0x38) == 0) goto LAB_000813ec;
LAB_00081310:
            WStack_310.n = 0;
            in_stack_fffffc30 = &_gp;
            in_stack_fffffc34 = uStack_c4;
            var_27 = var_26(&WStack_364,var_25(&_gp,uStack_c4),
                                         var_25(var_19,in_stack_fffffc3c));
            var_32 = var_19;
joined_r0x00081334:
            if (var_27 == 0) {
              in_stack_fffffc30 = &_gp;
              in_stack_fffffc34 = uStack_c4;
              var_27 = (*(type_8 *)(var_28 + 0x10a8))(&WStack_364);
            }
            var_29 = (type_16)WStack_310.n;
            if (var_29 == 0) {
              var_30 = var_30 & 0xffff;
              var_19 = var_32;
              break;
            }
            if (bVar3) {
              var_30 = var_31(WStack_310.n,var_30._2_2_);
              (**(type_8 **)(var_32 + -0x7bdc))(&uStack_340,WStack_310.a,var_29 << 4,0x30);
              bVar3 = false;
              var_19 = var_32;
            }
            else {
              var_33 = (type_16)var_30._0_2_;
              auStack_2d8[0] = var_30._0_2_;
              (**(type_8 **)(var_32 + -0x7bdc))(auStack_2d0,&uStack_340,var_33 * 0x10,0x30);
              var_30 = var_30 & 0xffff;
              var_19 = var_32;
              if (var_33 != 0) {
                var_34 = auStack_2d8;
                var_38 = var_34 + var_33 * 8;
                do {
                  if (var_29 != 0) {
                    var_33 = *(type_16 *)(var_34 + 4);
                    var_35 = 0;
                    var_29 = *(type_16 *)(var_34 + 6);
                    uVar1 = var_34[8];
                    uVar2 = var_34[9];
                    var_3 = &WStack_310;
                    var_32 = var_19;
                    do {
                      pLVar51 = &var_3->a[0].rRun;
                      var_35 = var_35 + 1;
                      pcVar9 = (type_8 *)(var_36 + 0x358);
                      in_stack_fffffc30 =
                           (type_21 *)
                           (*(type_8 *)(var_36 + 0x358))
                                     ((int)(short)uVar1,(int)*pLVar51,
                                      *(type_16 *)&var_3->a[0].prereq | var_33,
                                      (type_16)var_3->a[0].prereq | var_29);
                      in_stack_fffffc34 = (*pcVar9)((int)(short)uVar2,(int)var_3->a[0].nOut);
                      (*(type_8 *)(var_37 + -0x58))(&var_30);
                      var_3 = (type_7 *)pLVar51;
                      var_19 = var_32;
                    } while (var_35 < (int)(type_16)WStack_310.n);
                  }
                  var_34 = var_34 + 8;
                  var_29 = (type_16)WStack_310.n;
                } while (var_38 != var_34);
              }
            }
          }
          var_23 = var_23 + 1;
        } while (var_23 < var_24);
        *(type_25 *)(var_20 + 10) = 1;
        *(type_13 **)var_20[0xc] = var_21;
        *(type_25 *)((int)var_20 + 0x12) = 0;
        var_20[9] = 0x2000;
        *(type_21 *)((int)var_20 + 0x11) = 0;
        *(type_21 *)(var_20 + 6) = 0;
        *(type_21 *)((int)var_20 + 0x19) = 0;
        *(type_21 *)((int)var_20 + 0x1a) = 0;
        *(type_21 *)((int)var_20 + 0x1b) = 0;
        *(type_21 *)(var_20 + 7) = 0;
        *(type_21 *)((int)var_20 + 0x1d) = 0;
        *(type_21 *)((int)var_20 + 0x1e) = 0;
        *(type_21 *)((int)var_20 + 0x1f) = 0;
        *(type_21 *)(var_20 + 8) = 0;
        *(type_21 *)((int)var_20 + 0x21) = 0;
        *(type_21 *)((int)var_20 + 0x22) = 0;
        *(type_21 *)((int)var_20 + 0x23) = 0;
        if (var_27 != 0) goto LAB_0008120c;
      }
      else {
        *(type_25 *)(var_20 + 10) = 1;
        *(type_13 **)var_20[0xc] = var_21;
        *(type_25 *)((int)var_20 + 0x12) = 0;
        var_20[9] = 0x2000;
        *(type_21 *)((int)var_20 + 0x11) = 0;
        *(type_21 *)(var_20 + 6) = 0;
        *(type_21 *)((int)var_20 + 0x19) = 0;
        *(type_21 *)((int)var_20 + 0x1a) = 0;
        *(type_21 *)((int)var_20 + 0x1b) = 0;
        *(type_21 *)(var_20 + 7) = 0;
        *(type_21 *)((int)var_20 + 0x1d) = 0;
        *(type_21 *)((int)var_20 + 0x1e) = 0;
        *(type_21 *)((int)var_20 + 0x1f) = 0;
        *(type_21 *)(var_20 + 8) = 0;
        *(type_21 *)((int)var_20 + 0x21) = 0;
        *(type_21 *)((int)var_20 + 0x22) = 0;
        *(type_21 *)((int)var_20 + 0x23) = 0;
      }
      var_35 = *(int *)(var_32 + -0x7ef0);
      if (var_30._0_2_ != 0) {
        var_39 = 0;
        var_40 = &var_30;
        var_32 = var_19;
        do {
          var_39 = var_39 + 1;
          *(short *)(var_20 + 5) = *(short *)(var_40 + 4) + 1;
          *(type_25 *)((int)var_20 + 0x16) = *(type_25 *)((int)var_40 + 0x12);
          var_29 = var_40[2];
          var_20[1] = var_40[3];
          *var_20 = var_29;
          var_27 = (*(type_8 *)(var_35 + -0x51d8))(var_18,var_20);
          if (var_27 != 0) goto LAB_0008120c;
          var_40 = var_40 + 4;
          var_19 = var_32;
        } while (var_39 < (int)(var_30 >> 0x10));
      }
      var_21 = var_21 + 1;
    } while (var_21 < var_22);
    var_27 = 0;
  }
  else {
LAB_00081208:
    var_27 = 0;
  }
LAB_0008120c:
  if (var_41 != *piVar13) {
    var_7 = (**(type_8 **)(var_32 + -0x7ba0))();
    return var_7;
  }
  return var_27;
code_r0x00080e78:
  ppWVar32 = *(type_13 ***)&pIVar38->szIdxRow;
  (((type_24 *)&pIVar38->pSchema)->btree).nEq = 1;
  pIVar38->azColl = (char **)0x0;
  pIVar38->aColExpr = (type_15 *)&Elf32_Ehdr_00010000;
  *ppWVar32 = (type_13 *)pWVar49;
  *(short *)((int)&pIVar38->zColAff + 2) = var_42;
  if ((pTVar6->pSelect == (type_28 *)0x0) && ((pTVar6->tabFlags & 2) == 0)) {
    var_43 = var_42 + 0x1c;
  }
  else {
    var_43 = var_42 + -10;
  }
  if (var_43 < 0) {
    *(type_12 *)((int)&pIVar38->zColAff + 2) = 0;
  }
  else {
    *(short *)((int)&pIVar38->zColAff + 2) = var_43;
  }
  *(type_12 *)((int)&pIVar38->pNext + 2) = 0x2b;
  LVar20 = (*pcVar27)(pIVar7,0x2b);
  *(type_12 *)&pIVar38->pNext = LVar20;
  pIVar38->pPartIdxWhere = (type_11 *)0x4000;
  pIVar38->zName = (char *)(pWVar49->iContinue | (type_16)in_a2);
  pIVar38->aiColumn = (type_23 *)(pWVar49->iBreak | (type_16)in_a3);
  var_7 = (*pcVar9)(pBuilder,pIVar38);
  if (var_7 != 0) goto LAB_00080a6c;
  goto LAB_00080e28;
LAB_00080b5c:
  var_16 = var_16 + 1;
  if (var_44 == var_16) goto LAB_00080938;
  if (var_15 == *var_16) goto LAB_00080b70;
  goto LAB_00080b5c;
LAB_00080938:
  var_7 = var_7 + 1;
  var_45 = var_45 + 1;
  if (var_12->nExpr <= var_7) goto code_r0x00080948;
  goto LAB_000808d4;
code_r0x00080948:
  var_11 = var_1->field_0x37;
LAB_0008095c:
  if ((var_11 & 0xc0) == 0xc0) {
    pIVar38->pPartIdxWhere = (type_11 *)0x100;
LAB_00080c28:
    *(short *)&pIVar38->pNext = var_43 + 0x10;
    *(type_9 *)((int)&pIVar38->zColAff + 1) = bVar29;
    var_7 = pWVar25->nTerm;
  }
  else {
LAB_0008096c:
    bVar3 = false;
joined_r0x00080b94:
    if ((var_11 & 4) == 0) {
      var_29 = *(type_16 *)&pSrc->colUsed & *(type_16 *)&var_1->colNotIdxed |
               (type_16)pSrc->colUsed & (type_16)var_1->colNotIdxed;
      pEVar11 = (type_11 *)0x240;
      if (var_29 != 0) {
        pEVar11 = (type_11 *)0x200;
      }
      pIVar38->pPartIdxWhere = pEVar11;
      if (!bVar3) goto LAB_00080984;
LAB_00080bcc:
      uVar23 = var_46 + '\x01';
LAB_000809a4:
      *(type_10 *)((int)&pIVar38->zColAff + 1) = uVar23;
      if (pTVar6->szTabRow == 0) {
        var_17(7);
      }
      var_47 = (short)((var_1->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + var_43 + 1;
      *(short *)&pIVar38->pNext = var_47;
      if (var_29 != 0) {
        pIVar7 = (type_6 *)pSrc->iCursor;
        var_8 = (type_18 *)(int)(short)(var_43 + 0x10);
        if (0 < (pWVar44->sWC).nTerm) {
          var_6 = (type_18 *)0x0;
          pcVar12 = (type_8 *)(var_4 + 0x7254);
          do {
            while( true ) {
              var_13 = (type_5 *)((pWVar44->sWC).a + (int)(var_6[-1].a + 1));
              var_7 = (*pcVar12)((type_11 *)var_13->zName,pIVar7,var_1);
              if (var_7 == 0) goto LAB_00080d34;
              var_47 = (short)var_8;
              if (0 < *(short *)&var_13->pIndex) break;
              var_6 = (type_18 *)((int)&var_6->pParse + 1);
              var_8 = (type_18 *)(int)(short)(var_47 + *(short *)&var_13->pIndex);
              if ((pWVar44->sWC).nTerm <= (int)var_6) goto LAB_00080d34;
            }
            if (((type_16)var_13->pSelect & 0x820000) == 0) {
              var_47 = var_47 + -1;
            }
            else {
              var_47 = var_47 + -0x14;
            }
            var_8 = (type_18 *)(int)var_47;
            var_6 = (type_18 *)((int)&var_6->pParse + 1);
          } while ((int)var_6 < (pWVar44->sWC).nTerm);
LAB_00080d34:
          var_47 = *(short *)&pIVar38->pNext;
        }
        LVar20 = (*(type_8 *)(var_48 + 0x358))((int)var_47,var_8);
        *(type_12 *)&pIVar38->pNext = LVar20;
      }
    }
    else {
      var_29 = 0;
      pIVar38->pPartIdxWhere = (type_11 *)0x240;
      if (bVar3) goto LAB_00080bcc;
LAB_00080984:
      uVar23 = '\0';
      if (((pTVar6->tabFlags & 0x20) != 0) || (uVar23 = '\0', var_1->pPartIdxWhere != (type_11 *)0x0))
      goto LAB_000809a4;
      if (((var_29 != 0) ||
          ((((var_1->field_0x37 & 0x20) != 0 || (pTVar6->szTabRow <= var_1->szIdxRow)) ||
           ((pWVar44->wctrlFlags & 4) != 0)))) ||
         ((*(int *)(var_49 + -0x5dc8) == 0 ||
          ((pWVar44->pParse->db->dbOptFlags & 0x20) != 0)))) goto LAB_00080a28;
      *(type_10 *)((int)&pIVar38->zColAff + 1) = '\0';
      if (pTVar6->szTabRow == 0) {
        var_17(7);
      }
      *(short *)&pIVar38->pNext =
           (short)((var_1->szIdxRow * 0xf) / (int)pTVar6->szTabRow) + var_43 + 1;
    }
    var_7 = pWVar25->nTerm;
  }
  var_9 = pIVar38;
  pWVar37 = pWVar49;
  (*(type_8 *)(var_19 + -0x4dc4))(var_7,&pWVar25->a);
  var_7 = (*pcVar9)(pBuilder,pIVar38);
  *(short *)((int)&pIVar38->pNext + 2) = var_43;
  if (var_7 != 0) goto LAB_00080a6c;
LAB_00080a28:
  pWVar37 = (type_18 *)0x0;
  pBuilder->bldFlags = 0;
  var_9 = var_1;
  var_7 = var_50(pBuilder,pSrc,var_1,0);
  if (pBuilder->bldFlags == 1) {
    pTVar6->tabFlags = pTVar6->tabFlags | 0x100;
  }
  if ((pSrc->pIBIndex != (type_6 *)0x0) || (var_1 = var_1->pNext, var_7 != 0)) goto LAB_00080a6c;
LAB_00080bf4:
  var_46 = var_46 + '\x01';
  if (var_1 == (type_6 *)0x0) goto code_r0x00080c04;
  goto LAB_0008081c;
LAB_00080b70:
  var_11 = var_1->field_0x37;
  if ((var_11 & 0xc0) == 0xc0) {
    pIVar38->pPartIdxWhere = (type_11 *)0x100;
    bVar29 = var_46 + 1;
    goto LAB_00080c28;
  }
  bVar3 = true;
  goto joined_r0x00080b94;
code_r0x00080c04:
  var_7 = 0;
  goto LAB_00080a6c;
}


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

int MASKED(int *param_1,undefined4 param_2,uint *param_3,char *param_4)

{
  ushort uVar1;
  ushort uVar2;
  bool bVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined4 *puVar6;
  uint *puVar7;
  int iVar8;
  code *pcVar9;
  code *pcVar10;
  byte bVar18;
  char cVar19;
  char cVar20;
  code *pcVar11;
  undefined2 uVar16;
  short sVar17;
  int *piVar12;
  int iVar13;
  uint uVar14;
  ushort *puVar15;
  int iVar21;
  byte bVar24;
  int *piVar22;
  uint uVar23;
  short sVar28;
  undefined4 uVar25;
  short *psVar26;
  short *psVar27;
  uint uVar29;
  uint *puVar30;
  char *pcVar31;
  uint *puVar32;
  uint uVar33;
  ushort *puVar34;
  int iVar35;
  int iVar36;
  int iVar37;
  uint uVar38;
  char *pcVar39;
  char *pcVar40;
  uint uVar41;
  int iVar42;
  char *pcVar43;
  char *pcVar44;
  undefined4 *puVar45;
  ushort *puVar46;
  char *unaff_s5;
  undefined4 *unaff_s6;
  int iVar47;
  undefined *puVar48;
  uint *puVar49;
  int iStack_364;
  undefined4 *puStack_360;
  undefined4 uStack_35c;
  int iStack_358;
  ushort *puStack_354;
  int iStack_350;
  int iStack_34c;
  uint uStack_348;
  undefined4 uStack_344;
  uint uStack_340;
  undefined4 uStack_33c;
  undefined4 uStack_338;
  undefined4 uStack_334;
  undefined4 uStack_330;
  undefined4 uStack_32c;
  undefined4 uStack_328;
  undefined4 uStack_324;
  undefined4 uStack_320;
  undefined4 uStack_31c;
  undefined4 uStack_318;
  undefined4 uStack_314;
  ushort auStack_310 [4];
  uint auStack_308 [12];
  ushort auStack_2d8 [4];
  uint auStack_2d0 [2];
  ushort auStack_2c8 [20];
  undefined4 uStack_2a0;
  undefined4 *puStack_29c;
  undefined1 uStack_298;
  undefined4 uStack_294;
  uint uStack_28c;
  int iStack_104;
  uint *puStack_100;
  int iStack_fc;
  char *pcStack_f8;
  char *pcStack_f4;
  int *piStack_f0;
  char *pcStack_ec;
  undefined4 *puStack_e8;
  uint *puStack_e4;
  uint *puStack_e0;
  code *pcStack_dc;
  uint *puStack_d0;
  char *pcStack_cc;
  short sStack_b2;
  undefined2 local_7a;
  uint uStack_78;
  undefined2 *local_74;
  short *local_70;
  undefined4 *local_6c;
  undefined4 local_64;
  undefined2 local_48;
  undefined2 local_46;
  undefined2 local_44;
  undefined1 local_42;
  byte local_41;
  short local_30;
  undefined2 local_2e;
  int *local_2c;
  
  puVar48 = PTR___stack_chk_guard_0015ba2c;
  puVar32 = (uint *)param_1[3];
  iVar21 = param_1[1];
  pcVar39 = (char *)*param_1;
  local_2c = *(int **)PTR___stack_chk_guard_0015ba2c;
  local_7a = 0xffff;
  iVar36 = *(int *)(pcVar39 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;
  puVar6 = *(undefined4 **)(iVar36 + 0x10);
  puVar49 = *(uint **)(iVar36 + 0x44);
  puVar30 = param_3;
  pcVar31 = param_4;
  if (puVar49 == (uint *)0x0) {
    if ((puVar6[9] & 0x20) == 0) {
      puVar49 = &uStack_78;
      puVar30 = (uint *)0x48;
      (*(code *)PTR_memset_0015b9b4)(puVar49,0);
      local_46 = 1;
      local_44 = 1;
      local_6c = puVar6;
      local_42 = 5;
      local_2e = 0;
      local_41 = local_41 & 0x3f | 0xc0;
      local_48 = *(undefined2 *)((int)puVar6 + 0x2e);
      local_74 = &local_7a;
      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);
      local_70 = &local_30;
      local_30 = *(short *)(puVar6 + 0xb);
      if (-1 < *(char *)(iVar36 + 0x25)) {
        local_64 = *(undefined4 *)(*(int *)(iVar36 + 0x10) + 8);
      }
    }
    else {
      puVar49 = (uint *)puVar6[2];
      pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);
    }
  }
  else {
    pcVar43 = (char *)(int)*(short *)(puVar6 + 0xb);
  }
  if ((int)pcVar43 < 0xb) {
    iVar8 = param_1[4];
    puVar7 = (uint *)0x0;
  }
  else {
    puVar7 = (uint *)(*(code *)(PTR_LAB_0015b6c0 + 0x5c64))(pcVar43);
    iVar8 = param_1[4];
  }
  if ((((((iVar8 == 0) && ((*(ushort *)(pcVar39 + 0x2c) & 0x20) == 0)) &&
        ((*(uint *)(**(int **)pcVar39 + 0x24) & 0x8000) != 0)) &&
       ((*(int *)(iVar36 + 0x44) == 0 && (-1 < *(char *)(iVar36 + 0x25))))) &&
      ((puVar6[9] & 0x20) == 0)) && ((*(uint *)(iVar36 + 0x24) & 0x140000) == 0)) {
    sStack_b2 = (short)puVar7 + (short)pcVar43;
    pcVar44 = *(char **)(iVar21 + 0x14);
    pcVar10 = (code *)(PTR_LAB_0015b6c0 + -0x5530);
    pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x358);
    pcVar40 = pcVar44 + *(int *)(iVar21 + 0xc) * 0x30;
    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);
    unaff_s5 = pcVar44;
LAB_00080e28:
    pcVar43 = pcVar44;
    pcVar44 = unaff_s5;
    unaff_s6 = puVar6;
    if (unaff_s5 < pcVar40) {
      do {
        puVar30 = (uint *)puVar32[2];
        pcVar43 = pcVar44 + 0x30;
        unaff_s5 = pcVar43;
        if ((*(uint *)(pcVar44 + 0x20) & (uint)puVar30) == 0 &&
            (*(uint *)(pcVar44 + 0x24) & puVar32[3]) == 0) {
          pcVar31 = (char *)0x0;
          puVar30 = (uint *)0x0;
          iVar8 = (*pcVar10)(pcVar44,iVar36);
          if (iVar8 != 0) goto code_r0x00080e78;
        }
        pcVar44 = pcVar43;
        if (pcVar40 <= pcVar43) break;
      } while( true );
    }
  }
  puVar5 = PTR_LAB_0015b6d8;
  puVar4 = PTR_LAB_0015b6c0;
  cVar20 = '\0';
  pcVar40 = pcVar39;
  pcVar44 = pcVar43;
  if (puVar49 != (uint *)0x0) {
    pcVar9 = (code *)(PTR_LAB_0015b6c0 + -0x51d8);
    pcVar10 = (code *)(PTR_LAB_0015b714 + -0x2b38);
    pcVar43 = unaff_s5;
LAB_0008081c:
    puVar30 = (uint *)puVar49[9];
    if (((puVar30 == (uint *)0x0) ||
        (iVar8 = FUN_000805b0(*(undefined4 *)(iVar36 + 0x28),iVar21), iVar8 != 0)) &&
       (-1 < *(char *)(puVar49 + 0xe))) {
      sVar17 = *(short *)puVar49[2];
      pcVar44 = (char *)(int)sVar17;
      puVar32[6] = 0;
      *(undefined2 *)(puVar32 + 7) = 0;
      *puVar32 = (uint)param_3;
      puVar32[10] = 0;
      *(undefined1 *)((int)puVar32 + 0x11) = 0;
      *(undefined2 *)((int)puVar32 + 0x12) = 0;
      *(short *)((int)puVar32 + 0x16) = sVar17;
      puVar32[8] = (uint)puVar49;
      puVar32[1] = (uint)param_4;
      bVar18 = *(byte *)((int)puVar49 + 0x37);
      bVar24 = bVar18 & 0x20;
      if ((bVar18 & 0x20) == 0) {
        piVar22 = *(int **)(*param_1 + 8);
        if ((piVar22 != (int *)0x0) && (iVar8 = *piVar22, 0 < iVar8)) {
          unaff_s6 = *(undefined4 **)(iVar36 + 0x28);
          piVar12 = piVar22 + 1;
          iVar37 = 0;
LAB_000808d4:
          for (pcVar43 = (char *)*piVar12; pcVar43 != (char *)0x0;
              pcVar43 = *(char **)(pcVar43 + 0xc)) {
            while( true ) {
              if ((*(uint *)(pcVar43 + 4) & 0x1000) == 0) {
                puVar7 = puVar49;
                if ((*pcVar43 != -0x62) || (unaff_s6 != *(undefined4 **)(pcVar43 + 0x1c))) {
                  if (puVar49[10] == 0) goto LAB_00080938;
                  uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);
                  puVar45 = (undefined4 *)(puVar49[10] + 4);
                  if (uVar23 == 0) goto LAB_00080938;
                  pcVar31 = (char *)0x0;
                  goto LAB_00080ad0;
                }
                iVar13 = *(int *)(pcVar43 + 0x20);
                if (iVar13 < 0) goto LAB_00080b70;
                if (*(ushort *)((int)puVar49 + 0x32) == 0) goto LAB_00080938;
                psVar26 = (short *)puVar49[1];
                if (iVar13 == *psVar26) goto LAB_00080b70;
                psVar27 = psVar26 + *(ushort *)((int)puVar49 + 0x32);
                goto LAB_00080b5c;
              }
              if ((*(uint *)(pcVar43 + 4) & 0x40000) == 0) break;
              pcVar43 = *(char **)(*(int *)(pcVar43 + 0x14) + 4);
              if (pcVar43 == (char *)0x0) goto LAB_0008090c;
            }
          }
LAB_0008090c:
                    /* WARNING: Does not return */
          pcVar9 = (code *)trap(0);
          (*pcVar9)();
        }
        goto LAB_0008095c;
      }
      if ((bVar18 & 0xc0) == 0xc0) {
        bVar24 = 0;
        puVar32[9] = 0x100;
        goto LAB_00080c28;
      }
      goto LAB_0008096c;
    }
    unaff_s5 = pcVar43;
    if (*(int *)(iVar36 + 0x44) == 0) {
      puVar49 = (uint *)puVar49[5];
      goto LAB_00080bf4;
    }
  }
  pcVar43 = unaff_s5;
  iVar8 = 0;
LAB_00080a6c:
  if (local_2c == *(int **)puVar48) {
    return iVar8;
  }
  pcVar9 = FUN_000810a8;
  piVar22 = local_2c;
  puVar48 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  piVar12 = *(int **)(puVar48 + 0xda984);
  puStack_e8 = unaff_s6;
  puStack_e0 = puVar49;
  piStack_f0 = param_1;
  pcStack_dc = pcVar9;
  puStack_e4 = puVar7;
  pcStack_ec = pcVar43;
  pcStack_f4 = pcVar44;
  pcStack_f8 = pcVar40;
  iStack_fc = iVar36;
  puStack_100 = puVar32;
  puVar6 = (undefined4 *)piVar22[1];
  puVar32 = (uint *)piVar22[3];
  uStack_348 = 0;
  uStack_344 = 0;
  uStack_340 = 0;
  uStack_33c = 0;
  uStack_338 = 0;
  uStack_334 = 0;
  uStack_330 = 0;
  uVar29 = puVar6[5] + puVar6[3] * 0x30;
  uStack_32c = 0;
  uStack_328 = 0;
  uStack_324 = 0;
  uStack_320 = 0;
  uStack_31c = 0;
  uStack_318 = 0;
  uStack_314 = 0;
  uVar23 = puVar6[5];
  iStack_104 = *piVar12;
  pcStack_cc = pcVar31;
  puStack_d0 = puVar30;
  puVar30 = (uint *)(uint)(uVar23 < uVar29);
  iVar21 = *(int *)(*piVar22 + 4) + 8 + (uint)*(byte *)(puVar32 + 4) * 0x48;
  iVar36 = *(int *)(iVar21 + 0x28);
  if (puVar30 == (uint *)0x0) {
LAB_00081208:
    iVar47 = 0;
  }
  else {
    iVar8 = *(int *)(puVar48 + 0xda5b4);
    iVar37 = *(int *)(puVar48 + 0xda630);
    iVar13 = *(int *)(puVar48 + 0xda66c);
    do {
      while (((*(ushort *)(uVar23 + 0xc) & 0x200) == 0 ||
             (puVar30 = *(uint **)(uVar23 + 0x1c),
             (puVar30[0x66] & puVar32[2]) == 0 && (puVar30[0x67] & puVar32[3]) == 0))) {
        uVar23 = uVar23 + 0x30;
        if (uVar29 <= uVar23) goto LAB_00081208;
      }
      iStack_364 = *piVar22;
      puStack_360 = (undefined4 *)piVar22[1];
      iStack_358 = piVar22[3];
      iStack_350 = piVar22[5];
      iStack_34c = piVar22[6];
      uVar14 = puVar30[5] + puVar30[3] * 0x30;
      uStack_35c = 0;
      uVar33 = puVar30[5];
      puStack_354 = auStack_310;
      if (uVar33 < uVar14) {
        iVar47 = 0;
        bVar3 = true;
        do {
          if ((*(ushort *)(uVar33 + 0xc) & 0x400) == 0) {
            if (*(int *)(uVar33 + 0x14) == iVar36) {
              uStack_2a0 = *puVar6;
              uStack_298 = 0x2c;
              uStack_294 = 1;
              puStack_360 = &uStack_2a0;
              puStack_29c = puVar6;
              uStack_28c = uVar33;
              if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) != 0) goto LAB_00081310;
LAB_000813ec:
              auStack_310[0] = 0;
              iVar47 = MASKED(&iStack_364);
              goto joined_r0x00081334;
            }
          }
          else {
            puStack_360 = *(undefined4 **)(uVar33 + 0x1c);
            if (*(int *)(*(int *)(iVar21 + 0x10) + 0x38) == 0) goto LAB_000813ec;
LAB_00081310:
            auStack_310[0] = 0;
            iVar47 = FUN_0007403c(&iStack_364);
joined_r0x00081334:
            if (iVar47 == 0) {
              iVar47 = (*(code *)(iVar13 + 0x10a8))(&iStack_364);
            }
            uVar38 = (uint)auStack_310[0];
            if (uVar38 == 0) {
              uStack_348 = uStack_348 & 0xffff;
              break;
            }
            if (bVar3) {
              uStack_348 = CONCAT22(auStack_310[0],uStack_348._2_2_);
              puVar30 = auStack_308;
              (**(code **)(puVar48 + 0xda92c))(&uStack_340,puVar30,uVar38 << 4,0x30);
              bVar3 = false;
            }
            else {
              uVar41 = (uint)uStack_348._0_2_;
              puVar30 = &uStack_340;
              auStack_2d8[0] = uStack_348._0_2_;
              (**(code **)(puVar48 + 0xda92c))(auStack_2d0,puVar30,uVar41 * 0x10,0x30);
              uStack_348 = uStack_348 & 0xffff;
              if (uVar41 != 0) {
                puVar34 = auStack_2d8;
                puVar15 = puVar34 + uVar41 * 8;
                do {
                  if (uVar38 != 0) {
                    uVar41 = *(uint *)(puVar34 + 4);
                    iVar35 = 0;
                    uVar38 = *(uint *)(puVar34 + 6);
                    uVar1 = puVar34[8];
                    uVar2 = puVar34[9];
                    puVar46 = auStack_310;
                    do {
                      iVar35 = iVar35 + 1;
                      pcVar9 = (code *)(iVar37 + 0x358);
                      (*(code *)(iVar37 + 0x358))
                                ((int)(short)uVar1,(int)(short)puVar46[8],
                                 *(uint *)(puVar46 + 4) | uVar41,*(uint *)(puVar46 + 6) | uVar38);
                      puVar30 = (uint *)(int)(short)puVar46[9];
                      (*pcVar9)((int)(short)uVar2);
                      (*(code *)(iVar8 + -0x58))(&uStack_348);
                      puVar46 = puVar46 + 8;
                    } while (iVar35 < (int)(uint)auStack_310[0]);
                  }
                  puVar34 = puVar34 + 8;
                  uVar38 = (uint)auStack_310[0];
                } while (puVar15 != puVar34);
              }
            }
          }
          uVar33 = uVar33 + 0x30;
        } while (uVar33 < uVar14);
        *(undefined2 *)(puVar32 + 10) = 1;
        *(uint *)puVar32[0xc] = uVar23;
        *(undefined2 *)((int)puVar32 + 0x12) = 0;
        puVar32[9] = 0x2000;
        *(undefined1 *)((int)puVar32 + 0x11) = 0;
        *(undefined1 *)(puVar32 + 6) = 0;
        *(undefined1 *)((int)puVar32 + 0x19) = 0;
        *(undefined1 *)((int)puVar32 + 0x1a) = 0;
        *(undefined1 *)((int)puVar32 + 0x1b) = 0;
        *(undefined1 *)(puVar32 + 7) = 0;
        *(undefined1 *)((int)puVar32 + 0x1d) = 0;
        *(undefined1 *)((int)puVar32 + 0x1e) = 0;
        *(undefined1 *)((int)puVar32 + 0x1f) = 0;
        *(undefined1 *)(puVar32 + 8) = 0;
        *(undefined1 *)((int)puVar32 + 0x21) = 0;
        *(undefined1 *)((int)puVar32 + 0x22) = 0;
        *(undefined1 *)((int)puVar32 + 0x23) = 0;
        if (iVar47 != 0) goto LAB_0008120c;
      }
      else {
        *(undefined2 *)(puVar32 + 10) = 1;
        *(uint *)puVar32[0xc] = uVar23;
        *(undefined2 *)((int)puVar32 + 0x12) = 0;
        puVar32[9] = 0x2000;
        *(undefined1 *)((int)puVar32 + 0x11) = 0;
        *(undefined1 *)(puVar32 + 6) = 0;
        *(undefined1 *)((int)puVar32 + 0x19) = 0;
        *(undefined1 *)((int)puVar32 + 0x1a) = 0;
        *(undefined1 *)((int)puVar32 + 0x1b) = 0;
        *(undefined1 *)(puVar32 + 7) = 0;
        *(undefined1 *)((int)puVar32 + 0x1d) = 0;
        *(undefined1 *)((int)puVar32 + 0x1e) = 0;
        *(undefined1 *)((int)puVar32 + 0x1f) = 0;
        *(undefined1 *)(puVar32 + 8) = 0;
        *(undefined1 *)((int)puVar32 + 0x21) = 0;
        *(undefined1 *)((int)puVar32 + 0x22) = 0;
        *(undefined1 *)((int)puVar32 + 0x23) = 0;
      }
      iVar35 = *(int *)(puVar48 + 0xda618);
      if (uStack_348._0_2_ != 0) {
        iVar42 = 0;
        puVar49 = &uStack_348;
        do {
          iVar42 = iVar42 + 1;
          *(short *)(puVar32 + 5) = *(short *)(puVar49 + 4) + 1;
          *(undefined2 *)((int)puVar32 + 0x16) = *(undefined2 *)((int)puVar49 + 0x12);
          uVar14 = puVar49[2];
          puVar32[1] = puVar49[3];
          *puVar32 = uVar14;
          puVar30 = puVar32;
          iVar47 = (*(code *)(iVar35 + -0x51d8))(piVar22);
          if (iVar47 != 0) goto LAB_0008120c;
          puVar49 = puVar49 + 4;
        } while (iVar42 < (int)(uStack_348 >> 0x10));
      }
      uVar23 = uVar23 + 0x30;
    } while (uVar23 < uVar29);
    iVar47 = 0;
  }
LAB_0008120c:
  if (iStack_104 == *piVar12) {
    return iVar47;
  }
  iVar21 = iStack_104;
  (**(code **)(puVar48 + 0xda968))();
  iVar36 = *(int *)(iVar21 + 0x18);
  iVar21 = FUN_0007bd64(0);
  if (iVar21 != 0) {
    return 0;
  }
  *(undefined1 *)puVar30 = 0x9e;
  puVar30[7] = *(uint *)(iVar36 + 8);
  uVar23 = *(uint *)(iVar36 + 0xc);
  puVar30[0xc] = 0;
  puVar30[8] = uVar23;
  return 1;
code_r0x00080e78:
  *(undefined2 *)(puVar32 + 6) = 1;
  puVar32[8] = 0;
  puVar32[10] = 0x10000;
  *(char **)puVar32[0xc] = pcVar44;
  *(short *)((int)puVar32 + 0x12) = sStack_b2;
  if ((puVar6[3] == 0) && ((puVar6[9] & 2) == 0)) {
    sVar17 = sStack_b2 + 0x1c;
  }
  else {
    sVar17 = sStack_b2 + -10;
  }
  if (sVar17 < 0) {
    *(undefined2 *)((int)puVar32 + 0x12) = 0;
  }
  else {
    *(short *)((int)puVar32 + 0x12) = sVar17;
  }
  *(undefined2 *)((int)puVar32 + 0x16) = 0x2b;
  uVar16 = (*pcVar11)(puVar7,0x2b);
  *(undefined2 *)(puVar32 + 5) = uVar16;
  puVar32[9] = 0x4000;
  *puVar32 = *(uint *)(pcVar44 + 0x20) | (uint)param_3;
  puVar32[1] = *(uint *)(pcVar44 + 0x24) | (uint)param_4;
  iVar8 = (*pcVar9)(param_1,puVar32);
  if (iVar8 != 0) goto LAB_00080a6c;
  goto LAB_00080e28;
  while( true ) {
    iVar8 = (*pcVar10)(pcVar43,*puVar45,unaff_s6);
    if (iVar8 == 0) goto LAB_00080b70;
    uVar23 = (uint)*(ushort *)((int)puVar49 + 0x32);
    puVar45 = puVar45 + 5;
    pcVar31 = pcVar40 + 1;
    if ((int)uVar23 <= (int)(pcVar40 + 1)) break;
LAB_00080ad0:
    pcVar40 = pcVar31;
    if (*(short *)(puVar49[1] + (int)pcVar40 * 2) != -2) {
      puVar45 = puVar45 + 5;
      pcVar31 = pcVar40 + 1;
      if ((int)uVar23 <= (int)(pcVar40 + 1)) break;
      goto LAB_00080ad0;
    }
  }
  pcVar40 = pcVar40 + 1;
  iVar8 = *piVar22;
LAB_00080938:
  iVar37 = iVar37 + 1;
  piVar12 = piVar12 + 5;
  if (iVar8 <= iVar37) goto code_r0x00080948;
  goto LAB_000808d4;
LAB_00080b5c:
  psVar26 = psVar26 + 1;
  if (psVar27 == psVar26) goto LAB_00080938;
  if (iVar13 == *psVar26) goto LAB_00080b70;
  goto LAB_00080b5c;
code_r0x00080948:
  bVar18 = *(byte *)((int)puVar49 + 0x37);
LAB_0008095c:
  if ((bVar18 & 0xc0) == 0xc0) {
    puVar32[9] = 0x100;
LAB_00080c28:
    *(short *)(puVar32 + 5) = sVar17 + 0x10;
    *(byte *)((int)puVar32 + 0x11) = bVar24;
    uVar25 = *(undefined4 *)(iVar21 + 0xc);
  }
  else {
LAB_0008096c:
    bVar3 = false;
joined_r0x00080b94:
    if ((bVar18 & 4) == 0) {
      uVar29 = *(uint *)(iVar36 + 0x38) & puVar49[0x10] | *(uint *)(iVar36 + 0x3c) & puVar49[0x11];
      uVar23 = 0x240;
      if (uVar29 != 0) {
        uVar23 = 0x200;
      }
      puVar32[9] = uVar23;
      if (!bVar3) goto LAB_00080984;
LAB_00080bcc:
      cVar19 = cVar20 + '\x01';
LAB_000809a4:
      *(char *)((int)puVar32 + 0x11) = cVar19;
      if (*(short *)((int)puVar6 + 0x2e) == 0) {
        trap(7);
      }
      sVar28 = (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +
               sVar17 + 1;
      *(short *)(puVar32 + 5) = sVar28;
      if (uVar29 != 0) {
        puVar7 = *(uint **)(iVar36 + 0x28);
        pcVar43 = (char *)(int)(short)(sVar17 + 0x10);
        if (0 < *(int *)(pcVar39 + 0x5c)) {
          pcVar40 = (char *)0x0;
          pcVar11 = (code *)(PTR_LAB_0015b6d8 + 0x7254);
          do {
            while( true ) {
              unaff_s6 = (undefined4 *)(*(int *)(pcVar39 + 100) + (int)pcVar40 * 0x30);
              iVar8 = (*pcVar11)(*unaff_s6,puVar7,puVar49);
              if (iVar8 == 0) goto LAB_00080d34;
              sVar28 = (short)pcVar43;
              if (0 < *(short *)(unaff_s6 + 2)) break;
              pcVar40 = pcVar40 + 1;
              pcVar43 = (char *)(int)(short)(sVar28 + *(short *)(unaff_s6 + 2));
              if (*(int *)(pcVar39 + 0x5c) <= (int)pcVar40) goto LAB_00080d34;
            }
            if ((*(ushort *)(unaff_s6 + 3) & 0x82) == 0) {
              sVar28 = sVar28 + -1;
            }
            else {
              sVar28 = sVar28 + -0x14;
            }
            pcVar43 = (char *)(int)sVar28;
            pcVar40 = pcVar40 + 1;
          } while ((int)pcVar40 < *(int *)(pcVar39 + 0x5c));
LAB_00080d34:
          sVar28 = *(short *)(puVar32 + 5);
        }
        uVar16 = (*(code *)(puVar5 + 0x358))((int)sVar28,pcVar43);
        *(undefined2 *)(puVar32 + 5) = uVar16;
      }
    }
    else {
      uVar29 = 0;
      puVar32[9] = 0x240;
      if (bVar3) goto LAB_00080bcc;
LAB_00080984:
      cVar19 = '\0';
      if (((puVar6[9] & 0x20) != 0) || (cVar19 = '\0', puVar49[9] != 0)) goto LAB_000809a4;
      if (((uVar29 != 0) ||
          ((((*(byte *)((int)puVar49 + 0x37) & 0x20) != 0 ||
            (*(short *)((int)puVar6 + 0x2e) <= *(short *)(puVar49 + 0xc))) ||
           ((*(ushort *)(pcVar39 + 0x2c) & 4) != 0)))) ||
         ((*(int *)(PTR_DAT_0015b5d8 + -0x5dc8) == 0 ||
          ((*(ushort *)(**(int **)pcVar39 + 0x4c) & 0x20) != 0)))) goto LAB_00080a28;
      *(undefined1 *)((int)puVar32 + 0x11) = 0;
      if (*(short *)((int)puVar6 + 0x2e) == 0) {
        trap(7);
      }
      *(short *)(puVar32 + 5) =
           (short)((*(short *)(puVar49 + 0xc) * 0xf) / (int)*(short *)((int)puVar6 + 0x2e)) +
           sVar17 + 1;
    }
    uVar25 = *(undefined4 *)(iVar21 + 0xc);
  }
  puVar30 = puVar32;
  pcVar31 = pcVar44;
  (*(code *)(puVar4 + -0x4dc4))(uVar25,iVar21 + 0x14);
  iVar8 = (*pcVar9)(param_1,puVar32);
  *(short *)((int)puVar32 + 0x16) = sVar17;
  if (iVar8 != 0) goto LAB_00080a6c;
LAB_00080a28:
  pcVar31 = (char *)0x0;
  param_1[5] = 0;
  puVar30 = puVar49;
  iVar8 = FUN_0007dec0(param_1,iVar36);
  if (param_1[5] == 1) {
    puVar6[9] = puVar6[9] | 0x100;
  }
  if ((*(int *)(iVar36 + 0x44) != 0) || (puVar49 = (uint *)puVar49[5], iVar8 != 0))
  goto LAB_00080a6c;
LAB_00080bf4:
  cVar20 = cVar20 + '\x01';
  if (puVar49 == (uint *)0x0) goto code_r0x00080c04;
  goto LAB_0008081c;
LAB_00080b70:
  bVar18 = *(byte *)((int)puVar49 + 0x37);
  if ((bVar18 & 0xc0) == 0xc0) {
    puVar32[9] = 0x100;
    bVar24 = cVar20 + 1;
    goto LAB_00080c28;
  }
  bVar3 = true;
  goto joined_r0x00080b94;
code_r0x00080c04:
  iVar8 = 0;
  goto LAB_00080a6c;
}

