
void sqlite3ExprIfTrue(Parse *pParse,Expr *pExpr,int dest,int jumpIfNull)

{
  undefined *puVar1;
  Parse *pPVar2;
  u8 uVar8;
  Parse *xJump;
  uint uVar3;
  Parse *dest_00;
  uint *puVar4;
  int iVar5;
  char *pcVar6;
  undefined4 uVar7;
  byte bVar9;
  int iVar10;
  Parse *pPVar11;
  Expr *pExpr_00;
  char *in_t0;
  int in_t1;
  Parse *unaff_s0;
  Parse *pPVar12;
  int *piVar13;
  Parse *unaff_s1;
  Parse *pPVar14;
  Parse *unaff_s2;
  Expr *pEVar15;
  int iVar16;
  Parse *pPVar17;
  Parse *pPVar18;
  Parse *unaff_s5;
  uint *puVar19;
  Parse *pPVar20;
  Parse *unaff_s6;
  Parse *pParse_00;
  Parse *unaff_s7;
  Vdbe *pVVar21;
  undefined *puVar22;
  int iVar23;
  Parse *pPVar24;
  code *pcVar25;
  Parse *pPStack_1ac;
  int iStack_16c;
  int iStack_168;
  Expr EStack_15c;
  sqlite3 *psStack_124;
  char *pcStack_120;
  Vdbe *pVStack_11c;
  Expr *pEStack_118;
  Parse *pPStack_114;
  undefined4 uStack_110;
  undefined4 uStack_10c;
  int iStack_108;
  int iStack_104;
  int iStack_100;
  int iStack_fc;
  int iStack_f8;
  int iStack_f4;
  int iStack_f0;
  int iStack_ec;
  Parse *pPStack_e8;
  Parse *pPStack_e4;
  Expr *pEStack_e0;
  Parse *pPStack_dc;
  Parse *pPStack_d8;
  Parse *pPStack_d4;
  Parse *pPStack_d0;
  Parse *pPStack_cc;
  int iStack_94;
  Parse *pPStack_90;
  int iStack_8c;
  Parse *pPStack_84;
  Parse *pPStack_80;
  Parse *pPStack_7c;
  undefined *puStack_78;
  Parse *pPStack_74;
  Parse *pPStack_70;
  Parse *pPStack_6c;
  Parse *pPStack_68;
  code *pcStack_64;
  int regFree1;
  int regFree2;
  Table **ppTStack_2c;
  
  puVar1 = PTR___stack_chk_guard_00190e24;
  pPVar18 = (Parse *)pParse->pVdbe;
  regFree1 = 0;
  regFree2 = 0;
  ppTStack_2c = *(Table ***)PTR___stack_chk_guard_00190e24;
  pPVar11 = pParse;
  pPVar12 = (Parse *)pExpr;
  xJump = (Parse *)dest;
  pPStack_80 = unaff_s1;
  pPStack_7c = unaff_s2;
  pPStack_70 = unaff_s5;
  if ((pPVar18 != (Parse *)0x0) && (pPStack_80 = (Parse *)pExpr, pExpr != (Expr *)0x0)) {
    pPVar12 = (Parse *)(uint)pExpr->op;
    unaff_s6 = (Parse *)jumpIfNull;
    unaff_s7 = pPVar12;
    if (pPVar12 == (Parse *)&DAT_00000031) {
      unaff_s0 = (Parse *)(pParse->nLabel + -1);
      pParse->nLabel = (int)unaff_s0;
      pPVar11 = unaff_s0;
      if (jumpIfNull != 0) {
        pPVar11 = (Parse *)dest;
      }
      sqlite3ExprCodeIN(pParse,pExpr,(int)unaff_s0,(int)pPVar11);
      xJump = (Parse *)0x0;
      pPVar12 = (Parse *)dest;
      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,0xb);
LAB_000e6494:
      pPVar11 = pPVar18;
      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pPVar18,unaff_s0);
      jumpIfNull = (int)pPVar12;
      goto joined_r0x000e64ac;
    }
    unaff_s0 = pPVar12;
    if ((Parse *)&DAT_00000031 < pPVar12) {
      if (pPVar12 < (Parse *)0x3a) {
        if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;
        xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);
        goto LAB_000e6238;
      }
      if (pPVar12 != (Parse *)0x9c) {
        if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;
        bVar9 = pExpr->op2 ^ 0x9c;
        if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {
          pPVar12 = (Parse *)&DAT_00000010;
          if (bVar9 != 0) {
            pPVar12 = (Parse *)0x0;
          }
          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);
          jumpIfNull = (int)pPVar12;
        }
        else {
          pPVar12 = (Parse *)&DAT_00000010;
          if (bVar9 != 0) {
            pPVar12 = (Parse *)0x0;
          }
          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);
          jumpIfNull = (int)pPVar12;
        }
        goto joined_r0x000e64ac;
      }
LAB_000e631c:
      pPVar2 = (Parse *)0x34;
      if (pPVar12 == (Parse *)&DAT_0000002d) {
        pPVar2 = (Parse *)0x35;
      }
      unaff_s6 = (Parse *)0x80;
      pPVar12 = pPVar2;
LAB_000e6334:
      pEVar15 = pExpr->pLeft;
      uVar8 = pEVar15->op;
      if (uVar8 == 0xa4) {
        uVar8 = pEVar15->op2;
      }
      unaff_s7 = pPVar12;
      if (uVar8 == 0xa5) {
        iVar23 = ((pEVar15->x).pList)->nExpr;
LAB_000e63d8:
        unaff_s0 = (Parse *)PTR_LAB_00190c58;
        if (1 < iVar23) goto LAB_000e63e8;
      }
      else if (uVar8 == '\x7f') {
        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;
        goto LAB_000e63d8;
      }
      unaff_s0 = (Parse *)(PTR_LAB_00190c58 + -0x57b8);
      pPVar18 = (Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1);
      sqlite3ExprCodeTemp(pParse,pExpr->pRight,&regFree2);
      xJump = (Parse *)pExpr->pRight;
      jumpIfNull = (int)pPVar12;
      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(pParse,pExpr->pLeft);
    }
    else {
      if (pPVar12 == (Parse *)0x2c) {
        unaff_s0 = (Parse *)(pParse->nLabel + -1);
        pParse->nLabel = (int)unaff_s0;
        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);
        pPVar12 = (Parse *)jumpIfNull;
        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);
        goto LAB_000e6494;
      }
      if (pPVar12 < (Parse *)0x2d) {
        if (pPVar12 == (Parse *)&DAT_00000013) {
          pPVar12 = (Parse *)jumpIfNull;
          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);
          jumpIfNull = (int)pPVar12;
          goto joined_r0x000e64ac;
        }
        unaff_s0 = (Parse *)PTR_LAB_00190bd0;
        if (pPVar12 == (Parse *)&DAT_0000002b) {
          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);
          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);
          pPVar12 = (Parse *)jumpIfNull;
          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);
          jumpIfNull = (int)pPVar12;
          goto joined_r0x000e64ac;
        }
LAB_000e63e8:
        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);
        if (iVar23 == 0) {
          pPVar11 = (Parse *)pExpr;
          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();
          if (iVar23 != 0) goto joined_r0x000e64ac;
          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);
          pPVar12 = (Parse *)0x12;
          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);
        }
        else {
          xJump = (Parse *)0x0;
          pPVar12 = (Parse *)&DAT_0000000b;
          jumpIfNull = (int)unaff_s6;
        }
LAB_000e6238:
        pPVar11 = pPVar18;
        pPVar2 = (Parse *)dest;
        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);
        unaff_s6 = (Parse *)jumpIfNull;
        jumpIfNull = (int)pPVar2;
      }
      else {
        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;
        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;
        xJump = (Parse *)&pExpr->x;
        pPVar12 = (Parse *)dest;
        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,
                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,
                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);
        jumpIfNull = (int)pPVar12;
      }
    }
joined_r0x000e64ac:
    if (regFree1 != 0) {
      pPVar11 = pParse;
      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();
    }
    pPVar12 = (Parse *)regFree2;
    pPStack_7c = pParse;
    pPStack_70 = (Parse *)dest;
    if (regFree2 != 0) {
      pPVar11 = pParse;
      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();
    }
  }
  if (ppTStack_2c == *(Table ***)puVar1) {
    return;
  }
  pcVar25 = sqlite3ExprIfFalse;
  puVar22 = PTR___stack_chk_fail_00190df8;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  puStack_78 = puVar1;
  pEVar15 = *(Expr **)(puVar22 + 0xaa8d4);
  pPVar17 = (Parse *)pPVar11->pVdbe;
  iStack_94 = 0;
  pPStack_90 = (Parse *)0x0;
  iStack_8c._0_1_ = pEVar15->op;
  iStack_8c._1_1_ = pEVar15->affinity;
  iStack_8c._2_2_ = *(undefined2 *)&pEVar15->field_0x2;
  pPVar2 = pPVar11;
  pPVar24 = pPVar12;
  dest_00 = xJump;
  pPStack_e8 = unaff_s0;
  pPVar14 = pPStack_80;
  pPVar20 = pPStack_70;
  pParse_00 = unaff_s6;
  pPStack_84 = unaff_s0;
  pPStack_74 = pPVar18;
  pPStack_6c = unaff_s6;
  pPStack_68 = unaff_s7;
  pcStack_64 = pcVar25;
  if ((pPVar17 == (Parse *)0x0) || (pPStack_e8 = pPVar12, pPVar12 == (Parse *)0x0))
  goto LAB_000e667c;
  uVar3 = (uint)*(byte *)&pPVar12->db;
  pParse_00 = (Parse *)(uVar3 ^ 1);
  if (uVar3 == 0x31) {
    if ((Parse *)jumpIfNull == (Parse *)0x0) {
      pPVar18 = (Parse *)(pPVar11->nLabel + -1);
      pPVar11->nLabel = (int)pPVar18;
      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18);
      pPVar12 = pPVar18;
LAB_000e6640:
      pPVar2 = pPVar17;
      (*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))(pPVar17,pPVar18);
    }
    else {
      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump);
    }
    goto LAB_000e6654;
  }
  if (uVar3 < 0x32) {
    if (uVar3 == 0x2c) {
      pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550);
      sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);
      sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);
    }
    else if (uVar3 < 0x2d) {
      if (uVar3 != 0x13) {
        if (uVar3 == 0x2b) {
          pPVar18 = (Parse *)(pPVar11->nLabel + -1);
          pPVar11->nLabel = (int)pPVar18;
          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);
          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);
          pParse_00 = pPVar18;
          goto LAB_000e6640;
        }
LAB_000e6898:
        iVar23 = *(int *)(puVar22 + 0xaa654);
        pPVar18 = pParse_00;
        goto LAB_000e689c;
      }
      sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);
    }
    else {
      if (uVar3 == 0x2d) goto LAB_000e67d0;
      if (uVar3 != 0x30) goto LAB_000e6898;
      dest_00 = (Parse *)&pPVar12->isMultiWrite;
      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,
                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,
                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);
    }
LAB_000e6654:
    iVar23 = *(int *)(puVar22 + 0xaa654);
    if (iStack_94 != 0) {
LAB_000e6660:
      pPVar2 = pPVar11;
      (*(code *)(iVar23 + -0x4854))();
    }
  }
  else {
    pPVar18 = pParse_00;
    if (uVar3 < 0x3a) {
      if (0x33 < uVar3) {
LAB_000e67e4:
        pExpr_00 = (Expr *)pPVar12->rc;
        uVar8 = pExpr_00->op;
        if (uVar8 == 0xa4) {
          uVar8 = pExpr_00->op2;
        }
        if (uVar8 == 0xa5) {
          iVar23 = ((pExpr_00->x).pList)->nExpr;
LAB_000e688c:
          if (1 < iVar23) goto LAB_000e6898;
        }
        else if (uVar8 == '\x7f') {
          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;
          goto LAB_000e688c;
        }
        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);
        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);
        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);
        dest_00 = *(Parse **)&pPVar12->colNamesSet;
        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);
        if (iStack_94 != 0) {
          iVar23 = *(int *)(puVar22 + 0xaa654);
          goto LAB_000e6660;
        }
        goto LAB_000e6670;
      }
      dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94);
    }
    else {
      if (uVar3 == 0x9c) {
LAB_000e67d0:
        pParse_00 = (Parse *)0x34;
        if (uVar3 != 0x2d) {
          pParse_00 = (Parse *)0x35;
        }
        jumpIfNull = 0x80;
        goto LAB_000e67e4;
      }
      iVar23 = *(int *)(puVar22 + 0xaa654);
      if (uVar3 == 0xa3) {
        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;
        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {
          iVar23 = 0x10;
          if (bVar9 == 0) {
            iVar23 = 0;
          }
          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);
        }
        else {
          iVar23 = 0x10;
          if (bVar9 == 0) {
            iVar23 = 0;
          }
          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);
        }
        goto LAB_000e6654;
      }
LAB_000e689c:
      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);
      if (iVar23 == 0) {
        pPVar2 = pPVar12;
        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();
        pParse_00 = pPVar18;
        if (iVar23 != 0) goto LAB_000e6654;
        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);
        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);
        pParse_00 = (Parse *)&DAT_00000014;
      }
      else {
        dest_00 = (Parse *)0x0;
        pParse_00 = (Parse *)&DAT_0000000b;
      }
    }
    pPVar2 = pPVar17;
    (*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc))(pPVar17,pParse_00,dest_00,xJump);
    pParse_00 = pPVar18;
    if (iStack_94 != 0) {
      iVar23 = *(int *)(puVar22 + 0xaa654);
      goto LAB_000e6660;
    }
  }
LAB_000e6670:
  pPVar24 = pPStack_90;
  pPStack_e8 = pPVar12;
  pPVar14 = pPVar11;
  pPVar18 = (Parse *)jumpIfNull;
  pPVar20 = xJump;
  if (pPStack_90 != (Parse *)0x0) {
    pPVar2 = pPVar11;
    (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854))();
  }
LAB_000e667c:
  iVar23._0_1_ = pEVar15->op;
  iVar23._1_1_ = pEVar15->affinity;
  iVar23._2_2_ = *(undefined2 *)&pEVar15->field_0x2;
  if (iStack_8c == iVar23) {
    return;
  }
  pcVar25 = *(code **)(puVar22 + 0xaa8a8);
  (*pcVar25)();
  piVar13 = *(int **)(pcVar25 + 0xaa46c);
  pVVar21 = pPVar2->pVdbe;
  iStack_16c = 0;
  iStack_168 = 0;
  iStack_ec = *piVar13;
  pPStack_e4 = pPVar14;
  pEStack_e0 = pEVar15;
  pPStack_dc = pPVar17;
  pPStack_d8 = pPVar18;
  pPStack_d4 = pPVar20;
  pPStack_d0 = pParse_00;
  pPStack_cc = unaff_s7;
  if (pVVar21 != (Vdbe *)0x0) {
    if (pPVar24 == (Parse *)0x0) {
      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);
      pPVar14 = dest_00;
    }
    else {
      bVar9 = *(byte *)&pPVar24->db;
      uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff;
      if (uVar3 < 0x97) {
                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();
        return;
      }
      puVar4 = *(uint **)&pPVar24->isMultiWrite;
      pPVar18 = (Parse *)(pPVar2->nLabel + -1);
      uVar3 = *puVar4;
      pPVar2->nLabel = (int)pPVar18;
      iVar23 = pPVar24->rc;
      if (iVar23 == 0) {
        pPVar24 = (Parse *)0x0;
        pEVar15 = (Expr *)(uint)bVar9;
      }
      else {
        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);
        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);
        EStack_15c.op2 = EStack_15c.op;
        pPVar24 = (Parse *)&psStack_124;
        EStack_15c.flags = EStack_15c.flags & 0xffffefff;
        EStack_15c.op = 0xa4;
        pcStack_120 = (char *)0x0;
        pVStack_11c = (Vdbe *)0x0;
        pPStack_114 = (Parse *)0x0;
        uStack_110._0_1_ = '\0';
        uStack_110._1_1_ = '\0';
        uStack_110._2_1_ = '\0';
        uStack_110._3_1_ = '\0';
        uStack_10c._0_1_ = '\0';
        uStack_10c._1_1_ = '\0';
        uStack_10c._2_2_ = 0;
        iStack_108 = 0;
        iStack_104 = 0;
        iStack_100 = 0;
        iStack_fc = 0;
        iStack_f8 = 0;
        iStack_f4 = 0;
        iStack_f0 = 0;
        psStack_124 = (sqlite3 *)0x35000000;
        pEVar15 = &EStack_15c;
        pEStack_118 = &EStack_15c;
      }
      iStack_16c = 0;
      if ((int)(uVar3 - 1) < 1) {
        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);
        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;
      }
      else {
        iVar16 = *(int *)(pcVar25 + 0xaa208);
        iVar10 = *(int *)(pcVar25 + 0xaa2a0);
        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);
        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);
        iVar5 = *(int *)(pcVar25 + 0xaa218);
        puVar19 = puVar4 + 1;
        do {
          pPVar11 = (Parse *)*puVar19;
          if (iVar23 == 0) {
            pPVar24 = (Parse *)*puVar19;
            pPVar11 = pPStack_114;
          }
          pPStack_114 = pPVar11;
          pPVar20 = (Parse *)(puVar19 + 10);
          pEVar15 = (Expr *)(pPVar2->nLabel + -1);
          pPVar2->nLabel = (int)pEVar15;
          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);
          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);
          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);
          (*(code *)pPStack_1ac)(pVVar21,pEVar15);
          puVar19 = (uint *)pPVar20;
        } while (pPVar17 != pPVar20);
      }
      if ((uVar3 & 1) == 0) {
        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);
      }
      else {
        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);
      }
      (*(code *)pPStack_1ac)(pVVar21,pPVar18);
      if (iStack_16c != 0) {
        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);
        pPStack_1ac = dest_00;
      }
      pPVar14 = dest_00;
      pParse_00 = pPVar2;
      if (iStack_168 != 0) {
        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);
        pPStack_1ac = dest_00;
      }
    }
  }
  do {
    if (iStack_ec == *piVar13) {
      return;
    }
    iVar23 = iStack_ec;
    bVar9 = (**(code **)(pcVar25 + 0xaa440))();
    *(byte *)(iVar23 + 0x28) = bVar9 & 0xc0;
    sqlite3ExprCodeExprList(pParse_00,(ExprList *)pPVar18,(int)pPStack_1ac,0,'\x03');
    if ((int)pPVar17 < 2) {
      if (pPVar17 == (Parse *)0x1) {
LAB_000e80f8:
        pcVar6 = pPVar18->zErrMsg;
        goto LAB_000e8104;
      }
    }
    else {
      if (((uint)pPVar24->zErrMsg & 0x80) == 0) goto LAB_000e80f8;
      pcVar6 = *(char **)&pPVar18->disableLookaside;
LAB_000e8104:
      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);
    }
    uVar3 = *(uint *)(in_t1 + 4);
    if ((uVar3 & 0x20) == 0) {
      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);
    }
    else {
      if (in_t0 == (char *)0x0) {
        in_t0 = (pEVar15->u).zToken;
      }
      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);
      uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0);
      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe);
      uVar3 = *(uint *)(in_t1 + 4);
    }
    if ((uVar3 & 0x8000) == 0) {
      uVar7 = 0x3f;
      if (pParse_00->iSelfTab != 0) {
        uVar7 = 0x3e;
      }
      uVar7 = (*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14);
      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t1,0xfffffff8);
      if (0 < pVVar21->nOp) {
        pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;
      }
    }
    else {
      pcVar6 = pPVar18->zErrMsg;
      if (*pcVar6 == -0x62) {
        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),
                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);
      }
      else {
        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);
      }
    }
    if ((pPVar17 != (Parse *)0x0) && (pPVar20 == (Parse *)0x0)) {
      if (pPVar17 == (Parse *)0x1) {
        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);
      }
      else if (pParse_00->nRangeReg < (int)pPVar17) {
        pParse_00->nRangeReg = (int)pPVar17;
        pParse_00->iRangeReg = (int)pPStack_1ac;
      }
    }
  } while( true );
}



code * FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)

{
  code cVar1;
  undefined *puVar2;
  code *pcVar3;
  char cVar10;
  code *pcVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  char *pcVar8;
  undefined4 uVar9;
  byte bVar11;
  int iVar12;
  uint uVar13;
  int in_t0;
  int in_t1;
  code *unaff_s0;
  code *pcVar14;
  int *piVar15;
  code *unaff_s1;
  code *pcVar16;
  code *unaff_s2;
  code *pcVar17;
  int iVar18;
  code *pcVar19;
  code *pcVar20;
  code *unaff_s5;
  code *pcVar21;
  code *unaff_s6;
  code *pcVar22;
  code *unaff_s7;
  undefined *puVar23;
  int iVar24;
  code *pcVar25;
  code *pcVar26;
  code *pcVar27;
  code *pcStack_1ac;
  int iStack_16c;
  int iStack_168;
  undefined1 auStack_15c [4];
  uint uStack_158;
  undefined4 uStack_140;
  undefined1 uStack_134;
  undefined4 uStack_124;
  undefined4 uStack_120;
  undefined4 uStack_11c;
  code *pcStack_118;
  code *pcStack_114;
  undefined4 uStack_110;
  undefined4 uStack_10c;
  undefined4 uStack_108;
  undefined4 uStack_104;
  undefined4 uStack_100;
  undefined4 uStack_fc;
  undefined4 uStack_f8;
  undefined4 uStack_f4;
  undefined4 uStack_f0;
  int iStack_ec;
  code *pcStack_e8;
  code *pcStack_e4;
  code *pcStack_e0;
  code *pcStack_dc;
  code *pcStack_d8;
  code *pcStack_d4;
  code *pcStack_d0;
  code *pcStack_cc;
  int iStack_94;
  code *pcStack_90;
  code *pcStack_8c;
  code *pcStack_84;
  code *pcStack_80;
  code *pcStack_7c;
  undefined *puStack_78;
  code *pcStack_74;
  code *pcStack_70;
  code *pcStack_6c;
  code *pcStack_68;
  code *pcStack_64;
  code *local_50;
  code *local_4c;
  code *local_48;
  code *local_44;
  int local_34;
  code *local_30;
  code *local_2c;
  
  puVar2 = PTR___stack_chk_guard_00190e24;
  pcVar20 = *(code **)(param_1 + 8);
  local_34 = 0;
  local_30 = (code *)0x0;
  local_2c = *(code **)PTR___stack_chk_guard_00190e24;
  pcVar25 = param_1;
  pcVar4 = param_3;
  pcStack_80 = unaff_s1;
  pcStack_7c = unaff_s2;
  pcStack_70 = unaff_s5;
  if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {
    pcVar14 = (code *)(uint)(byte)*param_2;
    unaff_s6 = param_4;
    unaff_s7 = pcVar14;
    if (pcVar14 == (code *)&DAT_00000031) {
      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);
      *(code **)(param_1 + 0x38) = unaff_s0;
      pcVar25 = unaff_s0;
      if (param_4 != (code *)0x0) {
        pcVar25 = param_3;
      }
      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);
      pcVar4 = (code *)0x0;
      local_50 = (code *)0x0;
      pcVar3 = param_3;
      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);
LAB_000e6494:
      pcVar25 = pcVar20;
      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);
      goto joined_r0x000e64ac;
    }
    unaff_s0 = pcVar14;
    if (&DAT_00000031 < pcVar14) {
      if (pcVar14 < (code *)0x3a) {
        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;
        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);
        local_50 = (code *)0x0;
        goto LAB_000e6238;
      }
      if (pcVar14 != (code *)0x9c) {
        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;
        bVar11 = (byte)param_2[0x28] ^ 0x9c;
        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {
          pcVar3 = (code *)&DAT_00000010;
          if (bVar11 != 0) {
            pcVar3 = (code *)0x0;
          }
          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));
        }
        else {
          pcVar3 = (code *)&DAT_00000010;
          if (bVar11 != 0) {
            pcVar3 = (code *)0x0;
          }
          FUN_000e60cc();
        }
        goto joined_r0x000e64ac;
      }
LAB_000e631c:
      pcVar3 = (code *)0x34;
      if (pcVar14 == (code *)0x2d) {
        pcVar3 = (code *)0x35;
      }
      unaff_s6 = (code *)0x80;
      pcVar14 = pcVar3;
LAB_000e6334:
      pcVar8 = *(char **)(param_2 + 0xc);
      cVar10 = *pcVar8;
      if (cVar10 == -0x5c) {
        cVar10 = pcVar8[0x28];
      }
      unaff_s7 = pcVar14;
      if (cVar10 == -0x5b) {
        iVar24 = **(int **)(pcVar8 + 0x14);
LAB_000e63d8:
        unaff_s0 = (code *)PTR_LAB_00190c58;
        if (1 < iVar24) goto LAB_000e63e8;
      }
      else if (cVar10 == '\x7f') {
        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);
        goto LAB_000e63d8;
      }
      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);
      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);
      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);
      pcVar4 = *(code **)(param_2 + 0x10);
      pcVar3 = pcVar14;
      local_50 = pcVar20;
      local_48 = param_3;
      local_44 = unaff_s6;
      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));
    }
    else {
      pcVar3 = param_4;
      if (pcVar14 == (code *)0x2c) {
        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);
        *(code **)(param_1 + 0x38) = unaff_s0;
        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);
        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));
        goto LAB_000e6494;
      }
      if (pcVar14 < (code *)0x2d) {
        if (pcVar14 == (code *)&DAT_00000013) {
          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));
          goto joined_r0x000e64ac;
        }
        unaff_s0 = (code *)PTR_LAB_00190bd0;
        if (pcVar14 == (code *)0x2b) {
          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);
          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));
          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));
          goto joined_r0x000e64ac;
        }
LAB_000e63e8:
        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);
        if (iVar24 == 0) {
          pcVar25 = param_2;
          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();
          pcVar3 = param_4;
          if (iVar24 != 0) goto joined_r0x000e64ac;
          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);
          pcVar14 = (code *)0x12;
          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);
          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);
        }
        else {
          pcVar4 = (code *)0x0;
          local_50 = (code *)0x0;
          pcVar14 = (code *)&DAT_0000000b;
          param_4 = unaff_s6;
        }
LAB_000e6238:
        pcVar25 = pcVar20;
        pcVar3 = param_3;
        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);
        unaff_s6 = param_4;
      }
      else {
        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;
        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;
        pcVar4 = param_2 + 0x14;
        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);
        pcVar3 = param_3;
        local_4c = param_4;
        FUN_000ec9a4(param_1,param_2 + 0xc);
      }
    }
joined_r0x000e64ac:
    param_4 = pcVar3;
    if (local_34 != 0) {
      pcVar25 = param_1;
      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();
    }
    param_2 = local_30;
    pcStack_7c = param_1;
    pcStack_70 = param_3;
    if (local_30 != (code *)0x0) {
      pcVar25 = param_1;
      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();
    }
  }
  pcVar14 = *(code **)puVar2;
  if (local_2c == pcVar14) {
    return pcVar14;
  }
  pcVar27 = FUN_000e6550;
  puVar23 = PTR___stack_chk_fail_00190df8;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  puStack_78 = puVar2;
  pcVar17 = *(code **)(puVar23 + 0xaa8d4);
  pcVar19 = *(code **)(pcVar25 + 8);
  iStack_94 = 0;
  pcStack_90 = (code *)0x0;
  pcStack_8c = *(code **)pcVar17;
  pcVar3 = pcVar25;
  pcVar26 = param_2;
  pcVar14 = pcVar4;
  pcStack_e8 = unaff_s0;
  pcVar16 = pcStack_80;
  pcVar21 = pcStack_70;
  pcVar22 = unaff_s6;
  pcStack_84 = unaff_s0;
  pcStack_74 = pcVar20;
  pcStack_6c = unaff_s6;
  pcStack_68 = unaff_s7;
  pcStack_64 = pcVar27;
  if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;
  uVar5 = (uint)(byte)*param_2;
  pcVar22 = (code *)(uVar5 ^ 1);
  if (uVar5 == 0x31) {
    if (param_4 == (code *)0x0) {
      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);
      *(code **)(pcVar25 + 0x38) = pcVar20;
      FUN_000e55ac();
      param_2 = pcVar20;
LAB_000e6640:
      pcVar3 = pcVar19;
      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);
    }
    else {
      FUN_000e55ac();
    }
    goto LAB_000e6654;
  }
  if (uVar5 < 0x32) {
    if (uVar5 == 0x2c) {
      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);
      FUN_000e6550();
      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);
    }
    else if (uVar5 < 0x2d) {
      if (uVar5 != 0x13) {
        if (uVar5 == 0x2b) {
          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);
          *(code **)(pcVar25 + 0x38) = pcVar20;
          FUN_000e60cc();
          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);
          pcVar22 = pcVar20;
          goto LAB_000e6640;
        }
LAB_000e6898:
        iVar24 = *(int *)(puVar23 + 0xaa654);
        pcVar20 = pcVar22;
        goto LAB_000e689c;
      }
      FUN_000e60cc();
    }
    else {
      if (uVar5 == 0x2d) goto LAB_000e67d0;
      if (uVar5 != 0x30) goto LAB_000e6898;
      pcVar14 = param_2 + 0x14;
      FUN_000ec9a4();
    }
LAB_000e6654:
    iVar24 = *(int *)(puVar23 + 0xaa654);
    if (iStack_94 != 0) {
LAB_000e6660:
      pcVar3 = pcVar25;
      (*(code *)(iVar24 + -0x4854))();
    }
  }
  else {
    pcVar20 = pcVar22;
    if (uVar5 < 0x3a) {
      if (0x33 < uVar5) {
LAB_000e67e4:
        pcVar8 = *(char **)(param_2 + 0xc);
        cVar10 = *pcVar8;
        if (cVar10 == -0x5c) {
          cVar10 = pcVar8[0x28];
        }
        if (cVar10 == -0x5b) {
          iVar24 = **(int **)(pcVar8 + 0x14);
LAB_000e688c:
          if (1 < iVar24) goto LAB_000e6898;
        }
        else if (cVar10 == '\x7f') {
          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);
          goto LAB_000e688c;
        }
        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);
        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);
        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);
        pcVar14 = *(code **)(param_2 + 0x10);
        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))
                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);
        if (iStack_94 != 0) {
          iVar24 = *(int *)(puVar23 + 0xaa654);
          goto LAB_000e6660;
        }
        goto LAB_000e6670;
      }
      pcVar14 = (code *)FUN_000ea848();
    }
    else {
      if (uVar5 == 0x9c) {
LAB_000e67d0:
        pcVar22 = (code *)0x34;
        if (uVar5 != 0x2d) {
          pcVar22 = (code *)0x35;
        }
        param_4 = (code *)0x80;
        goto LAB_000e67e4;
      }
      iVar24 = *(int *)(puVar23 + 0xaa654);
      if (uVar5 == 0xa3) {
        if ((param_2[0x28] == (code)0x9c) ==
            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {
          FUN_000e60cc();
        }
        else {
          FUN_000e6550();
        }
        goto LAB_000e6654;
      }
LAB_000e689c:
      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);
      if (iVar24 == 0) {
        pcVar3 = param_2;
        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();
        pcVar22 = pcVar20;
        if (iVar24 != 0) goto LAB_000e6654;
        param_4 = (code *)(uint)(param_4 != (code *)0x0);
        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);
        pcVar22 = (code *)&DAT_00000014;
      }
      else {
        pcVar14 = (code *)0x0;
        pcVar22 = (code *)&DAT_0000000b;
      }
    }
    pcVar3 = pcVar19;
    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);
    pcVar22 = pcVar20;
    if (iStack_94 != 0) {
      iVar24 = *(int *)(puVar23 + 0xaa654);
      goto LAB_000e6660;
    }
  }
LAB_000e6670:
  pcVar26 = pcStack_90;
  pcStack_e8 = param_2;
  pcVar16 = pcVar25;
  pcVar20 = param_4;
  pcVar21 = pcVar4;
  if (pcStack_90 != (code *)0x0) {
    pcVar3 = pcVar25;
    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();
  }
LAB_000e667c:
  if (pcStack_8c == *(code **)pcVar17) {
    return *(code **)pcVar17;
  }
  pcVar25 = *(code **)(puVar23 + 0xaa8a8);
  (*pcVar25)();
  piVar15 = *(int **)(pcVar25 + 0xaa46c);
  uVar5 = *(uint *)(pcVar3 + 8);
  iStack_16c = 0;
  iStack_168 = 0;
  iStack_ec = *piVar15;
  pcStack_e4 = pcVar16;
  pcStack_e0 = pcVar17;
  pcStack_dc = pcVar19;
  pcStack_d8 = pcVar20;
  pcStack_d4 = pcVar21;
  pcStack_d0 = pcVar22;
  pcStack_cc = unaff_s7;
  if (uVar5 == 0) {
    pcVar14 = (code *)0x0;
  }
  else if (pcVar26 == (code *)0x0) {
    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);
    pcVar16 = pcVar14;
  }
  else {
    cVar1 = *pcVar26;
    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;
    if (uVar6 < 0x97) {
                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      pcVar20 = (code *)(*(pcVar25 +
                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();
      return pcVar20;
    }
    puVar7 = *(uint **)(pcVar26 + 0x14);
    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);
    uVar6 = *puVar7;
    *(code **)(pcVar3 + 0x38) = pcVar20;
    uVar13 = *(uint *)(pcVar26 + 0xc);
    if (uVar13 == 0) {
      pcVar26 = (code *)0x0;
      pcVar17 = (code *)(uint)(byte)cVar1;
    }
    else {
      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);
      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);
      uStack_134 = auStack_15c[0];
      pcVar26 = (code *)&uStack_124;
      uStack_158 = uStack_158 & 0xffffefff;
      auStack_15c[0] = (code)0xa4;
      uStack_120 = 0;
      uStack_11c = 0;
      pcStack_114 = (code *)0x0;
      uStack_110 = 0;
      uStack_10c = 0;
      uStack_108 = 0;
      uStack_104 = 0;
      uStack_100 = 0;
      uStack_fc = 0;
      uStack_f8 = 0;
      uStack_f4 = 0;
      uStack_f0 = 0;
      uStack_124 = 0x35000000;
      pcVar17 = (code *)auStack_15c;
      pcStack_118 = (code *)auStack_15c;
    }
    iStack_16c = 0;
    if ((int)(uVar6 - 1) < 1) {
      pcVar21 = *(code **)(pcVar25 + 0xaa208);
      pcStack_1ac = pcVar21 + 0xd78;
    }
    else {
      iVar18 = *(int *)(pcVar25 + 0xaa208);
      iVar12 = *(int *)(pcVar25 + 0xaa2a0);
      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);
      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);
      iVar24 = *(int *)(pcVar25 + 0xaa218);
      pcVar4 = (code *)(puVar7 + 1);
      do {
        pcVar16 = *(code **)pcVar4;
        if (uVar13 == 0) {
          pcVar26 = *(code **)pcVar4;
          pcVar16 = pcStack_114;
        }
        pcStack_114 = pcVar16;
        pcVar21 = pcVar4 + 0x28;
        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);
        *(code **)(pcVar3 + 0x38) = pcVar17;
        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);
        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);
        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);
        (*pcStack_1ac)(uVar5,pcVar17);
        pcVar4 = pcVar21;
      } while (pcVar19 != pcVar21);
    }
    if ((uVar6 & 1) == 0) {
      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);
    }
    else {
      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);
    }
    (*pcStack_1ac)(uVar5,pcVar20);
    if (iStack_16c != 0) {
      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);
      pcStack_1ac = pcVar14;
    }
    pcVar16 = pcVar14;
    pcVar22 = pcVar3;
    if (iStack_168 != 0) {
      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);
      pcStack_1ac = pcVar14;
    }
  }
  do {
    if (iStack_ec == *piVar15) {
      return pcVar14;
    }
    iVar24 = iStack_ec;
    bVar11 = (**(code **)(pcVar25 + 0xaa440))();
    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;
    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);
    if ((int)pcVar19 < 2) {
      if (pcVar19 == (code *)0x1) {
LAB_000e80f8:
        uVar6 = *(uint *)(pcVar20 + 4);
        goto LAB_000e8104;
      }
    }
    else {
      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;
      uVar6 = *(uint *)(pcVar20 + 0x18);
LAB_000e8104:
      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);
    }
    uVar6 = *(uint *)(in_t1 + 4);
    if ((uVar6 & 0x20) == 0) {
      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);
    }
    else {
      if (in_t0 == 0) {
        in_t0 = *(int *)(pcVar17 + 8);
      }
      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);
      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);
      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);
      uVar6 = *(uint *)(in_t1 + 4);
    }
    if ((uVar6 & 0x8000) == 0) {
      uVar9 = 0x3f;
      if (*(uint *)(pcVar22 + 0x34) != 0) {
        uVar9 = 0x3e;
      }
      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);
      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);
      if (0 < *(int *)(uVar5 + 0x6c)) {
        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =
             (ushort)pcVar19 & 0xff;
      }
    }
    else {
      pcVar8 = *(char **)(pcVar20 + 4);
      if (*pcVar8 == -0x62) {
        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)
        ;
      }
      else {
        (*pcVar17)(uVar5,0x49,0,pcVar16,0);
      }
    }
    pcVar14 = pcVar16;
    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {
      if (pcVar19 == (code *)0x1) {
        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);
      }
      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {
        *(code **)(pcVar22 + 0x1c) = pcVar19;
        *(code **)(pcVar22 + 0x20) = pcStack_1ac;
      }
    }
  } while( true );
}


lui gp,0xb
addiu gp,gp,0x2854
addu gp,gp,t9
addiu sp,sp,-0x60
sw s3,0x48(sp)
sw gp,0x20(sp)
sw ra,0x5c(sp)
sw s7,0x58(sp)
sw s6,0x54(sp)
sw s5,0x50(sp)
sw s4,0x4c(sp)
sw s2,0x44(sp)
sw s1,0x40(sp)
sw s0,0x3c(sp)
lw s3,-0x7afc(gp)
lw s4,0x8(a0)
sw zero,0x2c(sp)
sw zero,0x30(sp)
lw v0,0x0(s3)
sw v0,0x34(sp)
beq s4,zero,0x000e61c8
_nop
beq a1,zero,0x000e61c8
_or s1,a1,zero
lbu s0,0x0(a1)
li v0,0x31
or s2,a0,zero
or s5,a2,zero
or s6,a3,zero
beq s0,v0,0x000e6448
_or s7,s0,zero
sltiu v0,s0,0x32
beq v0,zero,0x000e6200
_li v0,0x2c
beq s0,v0,0x000e64bc
_sltiu v0,s0,0x2d
beq v0,zero,0x000e625c
_li v0,0x13
beq s0,v0,0x000e6304
_li v0,0x2b
bne s0,v0,0x000e63e4
_lw s0,-0x7d50(gp)
addiu s0,s0,0x60cc
or t9,s0,zero
bal 0x000e60cc
_lw a1,0xc(a1)
or a3,s6,zero
lw a1,0x10(s1)
or a2,s5,zero
or t9,s0,zero
bal 0x000e60cc
_or a0,s2,zero
lw gp,0x20(sp)
lw a1,0x2c(sp)
beq a1,zero,0x000e61bc
_lw t9,-0x7d7c(gp)
addiu t9,t9,-0x4854
jalr t9
_or a0,s2,zero
lw gp,0x20(sp)
lw a1,0x30(sp)
bne a1,zero,0x000e62f0
_lw t9,-0x7d7c(gp)
lw v1,0x34(sp)
lw v0,0x0(s3)
bne v1,v0,0x000e6544
_lw ra,0x5c(sp)
lw s7,0x58(sp)
lw s6,0x54(sp)
lw s5,0x50(sp)
lw s4,0x4c(sp)
lw s3,0x48(sp)
lw s2,0x44(sp)
lw s1,0x40(sp)
lw s0,0x3c(sp)
jr ra
_addiu sp,sp,0x60
sltiu v0,s0,0x3a
beq v0,zero,0x000e629c
_sltiu v0,s0,0x34
beq v0,zero,0x000e6334
_lw t9,-0x7cc8(gp)
addiu a2,sp,0x2c
addiu t9,t9,-0x57b8
bal 0x000ea848
_lw a1,0xc(a1)
or a3,s5,zero
lw gp,0x20(sp)
or a2,v0,zero
sw zero,0x10(sp)
or a1,s0,zero
lw t9,-0x7d60(gp)
addiu t9,t9,0x10fc
jalr t9
_or a0,s4,zero
lw a1,0x2c(sp)
beq a1,zero,0x000e61bc
_lw gp,0x20(sp)
b 0x000e61ac
_lw t9,-0x7d7c(gp)
li v0,0x2d
beq s0,v0,0x000e631c
_li v0,0x30
bne s0,v0,0x000e63e4
_lw v0,-0x7d50(gp)
addiu a2,a1,0x14
lw t9,-0x7cc8(gp)
addiu a1,a1,0xc
sw a3,0x14(sp)
or a3,s5,zero
addiu v0,v0,0x60cc
addiu t9,t9,-0x365c
bal 0x000ec9a4
_sw v0,0x10(sp)
b 0x000e61a0
_lw gp,0x20(sp)
li v0,0x9c
beq s0,v0,0x000e631c
_li v0,0xa3
bne s0,v0,0x000e63e8
_lw t9,-0x7d7c(gp)
lw v1,0x10(a1)
lbu v0,0x28(a1)
lw v1,0x8(v1)
xori v0,v0,0x9c
sltiu a3,v0,0x1
lb v1,0x4(v1)
sltiu v1,v1,0x1
beq a3,v1,0x000e651c
_lw a1,0xc(a1)
li a3,0x10
lw t9,-0x7d50(gp)
addiu t9,t9,0x60cc
bal 0x000e60cc
_movn a3,zero,v0
b 0x000e61a0
_lw gp,0x20(sp)
addiu t9,t9,-0x4854
jalr t9
_or a0,s2,zero
b 0x000e61c8
_lw gp,0x20(sp)
lw t9,-0x7d50(gp)
addiu t9,t9,0x6550
bal 0x000e6550
_lw a1,0xc(a1)
b 0x000e61a0
_lw gp,0x20(sp)
li v1,0x35
li v0,0x34
xori s0,s0,0x2d
movz v0,v1,s0
li s6,0x80
or s7,v0,zero
lw a1,0xc(s1)
li v1,0xa4
lbu v0,0x0(a1)
bne v0,v1,0x000e634c
_li v1,0xa5
lbu v0,0x28(a1)
beq v0,v1,0x000e6538
_li v1,0x7f
beq v0,v1,0x000e63cc
_lw s0,-0x7cc8(gp)
addiu a2,sp,0x2c
addiu s0,s0,-0x57b8
or t9,s0,zero
bal 0x000ea848
_or a0,s2,zero
addiu a2,sp,0x30
lw a1,0x10(s1)
or a0,s2,zero
or t9,s0,zero
bal 0x000ea848
_or s4,v0,zero
or a3,s7,zero
lw gp,0x20(sp)
or a0,s2,zero
lw a1,0xc(s1)
lw a2,0x10(s1)
sw s6,0x1c(sp)
sw s5,0x18(sp)
sw v0,0x14(sp)
lw t9,-0x7d5c(gp)
addiu t9,t9,-0x59dc
jalr t9
_sw s4,0x10(sp)
lw a1,0x2c(sp)
beq a1,zero,0x000e61bc
_lw gp,0x20(sp)
b 0x000e61ac
_lw t9,-0x7d7c(gp)
lw v0,0x14(a1)
lw v0,0x0(v0)
lw v0,0x0(v0)
slti v0,v0,0x2
bne v0,zero,0x000e635c
_lw s0,-0x7cc8(gp)
lw t9,-0x7d7c(gp)
addiu t9,t9,-0x4d8c
jalr t9
_or a0,s1,zero
bne v0,zero,0x000e6508
_lw gp,0x20(sp)
lw t9,-0x7d7c(gp)
addiu t9,t9,-0x4e14
jalr t9
_or a0,s1,zero
bne v0,zero,0x000e61a0
_lw gp,0x20(sp)
lw t9,-0x7cc8(gp)
addiu a2,sp,0x2c
or a1,s1,zero
or a0,s2,zero
addiu t9,t9,-0x57b8
bal 0x000ea848
_sltu s6,zero,s6
li a1,0x12
lw gp,0x20(sp)
or a3,s5,zero
sw s6,0x10(sp)
b 0x000e6238
_or a2,v0,zero
lw s0,0x38(a0)
lw t9,-0x7d50(gp)
addiu s0,s0,-0x1
addiu t9,t9,0x55ac
or a3,s0,zero
sw s0,0x38(a0)
movn a3,a2,s6
bal 0x000e55ac
_or a2,s0,zero
or a2,zero,zero
lw gp,0x20(sp)
li a1,0xb
or a0,s4,zero
sw zero,0x10(sp)
lw t9,-0x7d60(gp)
addiu t9,t9,0x10fc
jalr t9
_or a3,s5,zero
lw gp,0x20(sp)
lw t9,-0x7d60(gp)
or a1,s0,zero
addiu t9,t9,0xd78
jalr t9
_or a0,s4,zero
lw a1,0x2c(sp)
beq a1,zero,0x000e61bc
_lw gp,0x20(sp)
b 0x000e61ac
_lw t9,-0x7d7c(gp)
lw s0,0x38(a0)
xori a3,a3,0x10
lw t9,-0x7d50(gp)
addiu s0,s0,-0x1
addiu t9,t9,0x6550
sw s0,0x38(a0)
or a2,s0,zero
bal 0x000e6550
_lw a1,0xc(a1)
or a0,s2,zero
lw gp,0x20(sp)
or a3,s6,zero
lw a1,0x10(s1)
lw t9,-0x7d50(gp)
addiu t9,t9,0x60cc
bal 0x000e60cc
_or a2,s5,zero
b 0x000e6494
_lw gp,0x20(sp)
or a2,zero,zero
sw zero,0x10(sp)
li a1,0xb
b 0x000e6238
_or a3,s5,zero
li a3,0x10
lw t9,-0x7d50(gp)
addiu t9,t9,0x6550
bal 0x000e6550
_movn a3,zero,v0
b 0x000e61a0
_lw gp,0x20(sp)
lw v0,0x14(a1)
b 0x000e63d8
_lw v0,0x0(v0)
lw t9,-0x7b28(gp)
jalr t9
_nop
(translation_unit "code * FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)\n\n{\n  code cVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  char cVar10;\n  code *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar11;\n  int iVar12;\n  uint uVar13;\n  int in_t0;\n  int in_t1;\n  code *unaff_s0;\n  code *pcVar14;\n  int *piVar15;\n  code *unaff_s1;\n  code *pcVar16;\n  code *unaff_s2;\n  code *pcVar17;\n  int iVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *unaff_s5;\n  code *pcVar21;\n  code *unaff_s6;\n  code *pcVar22;\n  code *unaff_s7;\n  undefined *puVar23;\n  int iVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  undefined1 auStack_15c [4];\n  uint uStack_158;\n  undefined4 uStack_140;\n  undefined1 uStack_134;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  undefined4 uStack_11c;\n  code *pcStack_118;\n  code *pcStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  undefined4 uStack_f4;\n  undefined4 uStack_f0;\n  int iStack_ec;\n  code *pcStack_e8;\n  code *pcStack_e4;\n  code *pcStack_e0;\n  code *pcStack_dc;\n  code *pcStack_d8;\n  code *pcStack_d4;\n  code *pcStack_d0;\n  code *pcStack_cc;\n  int iStack_94;\n  code *pcStack_90;\n  code *pcStack_8c;\n  code *pcStack_84;\n  code *pcStack_80;\n  code *pcStack_7c;\n  undefined *puStack_78;\n  code *pcStack_74;\n  code *pcStack_70;\n  code *pcStack_6c;\n  code *pcStack_68;\n  code *pcStack_64;\n  code *local_50;\n  code *local_4c;\n  code *local_48;\n  code *local_44;\n  int local_34;\n  code *local_30;\n  code *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00190e24;\n  pcVar20 = *(code **)(param_1 + 8);\n  local_34 = 0;\n  local_30 = (code *)0x0;\n  local_2c = *(code **)PTR___stack_chk_guard_00190e24;\n  pcVar25 = param_1;\n  pcVar4 = param_3;\n  pcStack_80 = unaff_s1;\n  pcStack_7c = unaff_s2;\n  pcStack_70 = unaff_s5;\n  if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  pcVar14 = *(code **)puVar2;\n  if (local_2c == pcVar14) {\n    return pcVar14;\n  }\n  pcVar27 = FUN_000e6550;\n  puVar23 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar2;\n  pcVar17 = *(code **)(puVar23 + 0xaa8d4);\n  pcVar19 = *(code **)(pcVar25 + 8);\n  iStack_94 = 0;\n  pcStack_90 = (code *)0x0;\n  pcStack_8c = *(code **)pcVar17;\n  pcVar3 = pcVar25;\n  pcVar26 = param_2;\n  pcVar14 = pcVar4;\n  pcStack_e8 = unaff_s0;\n  pcVar16 = pcStack_80;\n  pcVar21 = pcStack_70;\n  pcVar22 = unaff_s6;\n  pcStack_84 = unaff_s0;\n  pcStack_74 = pcVar20;\n  pcStack_6c = unaff_s6;\n  pcStack_68 = unaff_s7;\n  pcStack_64 = pcVar27;\n  if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;\n  uVar5 = (uint)(byte)*param_2;\n  pcVar22 = (code *)(uVar5 ^ 1);\n  if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pcVar26 = pcStack_90;\n  pcStack_e8 = param_2;\n  pcVar16 = pcVar25;\n  pcVar20 = param_4;\n  pcVar21 = pcVar4;\n  if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }\n  pcVar25 = *(code **)(puVar23 + 0xaa8a8);\n  (*pcVar25)();\n  piVar15 = *(int **)(pcVar25 + 0xaa46c);\n  uVar5 = *(uint *)(pcVar3 + 8);\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar15;\n  pcStack_e4 = pcVar16;\n  pcStack_e0 = pcVar17;\n  pcStack_dc = pcVar19;\n  pcStack_d8 = pcVar20;\n  pcStack_d4 = pcVar21;\n  pcStack_d0 = pcVar22;\n  pcStack_cc = unaff_s7;\n  if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }\n  do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "code * FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)\n\n{\n  code cVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  char cVar10;\n  code *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar11;\n  int iVar12;\n  uint uVar13;\n  int in_t0;\n  int in_t1;\n  code *unaff_s0;\n  code *pcVar14;\n  int *piVar15;\n  code *unaff_s1;\n  code *pcVar16;\n  code *unaff_s2;\n  code *pcVar17;\n  int iVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *unaff_s5;\n  code *pcVar21;\n  code *unaff_s6;\n  code *pcVar22;\n  code *unaff_s7;\n  undefined *puVar23;\n  int iVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  undefined1 auStack_15c [4];\n  uint uStack_158;\n  undefined4 uStack_140;\n  undefined1 uStack_134;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  undefined4 uStack_11c;\n  code *pcStack_118;\n  code *pcStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  undefined4 uStack_f4;\n  undefined4 uStack_f0;\n  int iStack_ec;\n  code *pcStack_e8;\n  code *pcStack_e4;\n  code *pcStack_e0;\n  code *pcStack_dc;\n  code *pcStack_d8;\n  code *pcStack_d4;\n  code *pcStack_d0;\n  code *pcStack_cc;\n  int iStack_94;\n  code *pcStack_90;\n  code *pcStack_8c;\n  code *pcStack_84;\n  code *pcStack_80;\n  code *pcStack_7c;\n  undefined *puStack_78;\n  code *pcStack_74;\n  code *pcStack_70;\n  code *pcStack_6c;\n  code *pcStack_68;\n  code *pcStack_64;\n  code *local_50;\n  code *local_4c;\n  code *local_48;\n  code *local_44;\n  int local_34;\n  code *local_30;\n  code *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00190e24;\n  pcVar20 = *(code **)(param_1 + 8);\n  local_34 = 0;\n  local_30 = (code *)0x0;\n  local_2c = *(code **)PTR___stack_chk_guard_00190e24;\n  pcVar25 = param_1;\n  pcVar4 = param_3;\n  pcStack_80 = unaff_s1;\n  pcStack_7c = unaff_s2;\n  pcStack_70 = unaff_s5;\n  if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  pcVar14 = *(code **)puVar2;\n  if (local_2c == pcVar14) {\n    return pcVar14;\n  }\n  pcVar27 = FUN_000e6550;\n  puVar23 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar2;\n  pcVar17 = *(code **)(puVar23 + 0xaa8d4);\n  pcVar19 = *(code **)(pcVar25 + 8);\n  iStack_94 = 0;\n  pcStack_90 = (code *)0x0;\n  pcStack_8c = *(code **)pcVar17;\n  pcVar3 = pcVar25;\n  pcVar26 = param_2;\n  pcVar14 = pcVar4;\n  pcStack_e8 = unaff_s0;\n  pcVar16 = pcStack_80;\n  pcVar21 = pcStack_70;\n  pcVar22 = unaff_s6;\n  pcStack_84 = unaff_s0;\n  pcStack_74 = pcVar20;\n  pcStack_6c = unaff_s6;\n  pcStack_68 = unaff_s7;\n  pcStack_64 = pcVar27;\n  if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;\n  uVar5 = (uint)(byte)*param_2;\n  pcVar22 = (code *)(uVar5 ^ 1);\n  if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pcVar26 = pcStack_90;\n  pcStack_e8 = param_2;\n  pcVar16 = pcVar25;\n  pcVar20 = param_4;\n  pcVar21 = pcVar4;\n  if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }\n  pcVar25 = *(code **)(puVar23 + 0xaa8a8);\n  (*pcVar25)();\n  piVar15 = *(int **)(pcVar25 + 0xaa46c);\n  uVar5 = *(uint *)(pcVar3 + 8);\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar15;\n  pcStack_e4 = pcVar16;\n  pcStack_e0 = pcVar17;\n  pcStack_dc = pcVar19;\n  pcStack_d8 = pcVar20;\n  pcStack_d4 = pcVar21;\n  pcStack_d0 = pcVar22;\n  pcStack_cc = unaff_s7;\n  if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }\n  do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );\n}" type_identifier (pointer_declarator "* FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)" * (function_declarator "FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)" identifier (parameter_list "(code *param_1,code *param_2,code *param_3,code *param_4)" ( (parameter_declaration "code *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "code *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  code cVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  char cVar10;\n  code *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar11;\n  int iVar12;\n  uint uVar13;\n  int in_t0;\n  int in_t1;\n  code *unaff_s0;\n  code *pcVar14;\n  int *piVar15;\n  code *unaff_s1;\n  code *pcVar16;\n  code *unaff_s2;\n  code *pcVar17;\n  int iVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *unaff_s5;\n  code *pcVar21;\n  code *unaff_s6;\n  code *pcVar22;\n  code *unaff_s7;\n  undefined *puVar23;\n  int iVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  undefined1 auStack_15c [4];\n  uint uStack_158;\n  undefined4 uStack_140;\n  undefined1 uStack_134;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  undefined4 uStack_11c;\n  code *pcStack_118;\n  code *pcStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  undefined4 uStack_f4;\n  undefined4 uStack_f0;\n  int iStack_ec;\n  code *pcStack_e8;\n  code *pcStack_e4;\n  code *pcStack_e0;\n  code *pcStack_dc;\n  code *pcStack_d8;\n  code *pcStack_d4;\n  code *pcStack_d0;\n  code *pcStack_cc;\n  int iStack_94;\n  code *pcStack_90;\n  code *pcStack_8c;\n  code *pcStack_84;\n  code *pcStack_80;\n  code *pcStack_7c;\n  undefined *puStack_78;\n  code *pcStack_74;\n  code *pcStack_70;\n  code *pcStack_6c;\n  code *pcStack_68;\n  code *pcStack_64;\n  code *local_50;\n  code *local_4c;\n  code *local_48;\n  code *local_44;\n  int local_34;\n  code *local_30;\n  code *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00190e24;\n  pcVar20 = *(code **)(param_1 + 8);\n  local_34 = 0;\n  local_30 = (code *)0x0;\n  local_2c = *(code **)PTR___stack_chk_guard_00190e24;\n  pcVar25 = param_1;\n  pcVar4 = param_3;\n  pcStack_80 = unaff_s1;\n  pcStack_7c = unaff_s2;\n  pcStack_70 = unaff_s5;\n  if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  pcVar14 = *(code **)puVar2;\n  if (local_2c == pcVar14) {\n    return pcVar14;\n  }\n  pcVar27 = FUN_000e6550;\n  puVar23 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar2;\n  pcVar17 = *(code **)(puVar23 + 0xaa8d4);\n  pcVar19 = *(code **)(pcVar25 + 8);\n  iStack_94 = 0;\n  pcStack_90 = (code *)0x0;\n  pcStack_8c = *(code **)pcVar17;\n  pcVar3 = pcVar25;\n  pcVar26 = param_2;\n  pcVar14 = pcVar4;\n  pcStack_e8 = unaff_s0;\n  pcVar16 = pcStack_80;\n  pcVar21 = pcStack_70;\n  pcVar22 = unaff_s6;\n  pcStack_84 = unaff_s0;\n  pcStack_74 = pcVar20;\n  pcStack_6c = unaff_s6;\n  pcStack_68 = unaff_s7;\n  pcStack_64 = pcVar27;\n  if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;\n  uVar5 = (uint)(byte)*param_2;\n  pcVar22 = (code *)(uVar5 ^ 1);\n  if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pcVar26 = pcStack_90;\n  pcStack_e8 = param_2;\n  pcVar16 = pcVar25;\n  pcVar20 = param_4;\n  pcVar21 = pcVar4;\n  if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }\n  pcVar25 = *(code **)(puVar23 + 0xaa8a8);\n  (*pcVar25)();\n  piVar15 = *(int **)(pcVar25 + 0xaa46c);\n  uVar5 = *(uint *)(pcVar3 + 8);\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar15;\n  pcStack_e4 = pcVar16;\n  pcStack_e0 = pcVar17;\n  pcStack_dc = pcVar19;\n  pcStack_d8 = pcVar20;\n  pcStack_d4 = pcVar21;\n  pcStack_d0 = pcVar22;\n  pcStack_cc = unaff_s7;\n  if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }\n  do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );\n}" { (declaration "code cVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int in_t0;" primitive_type identifier ;) (declaration "int in_t1;" primitive_type identifier ;) (declaration "code *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "code *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "code *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "code *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcStack_1ac;" type_identifier (pointer_declarator "*pcStack_1ac" * identifier) ;) (declaration "int iStack_16c;" primitive_type identifier ;) (declaration "int iStack_168;" primitive_type identifier ;) (declaration "undefined1 auStack_15c [4];" type_identifier (array_declarator "auStack_15c [4]" identifier [ number_literal ]) ;) (declaration "uint uStack_158;" type_identifier identifier ;) (declaration "undefined4 uStack_140;" type_identifier identifier ;) (declaration "undefined1 uStack_134;" type_identifier identifier ;) (declaration "undefined4 uStack_124;" type_identifier identifier ;) (declaration "undefined4 uStack_120;" type_identifier identifier ;) (declaration "undefined4 uStack_11c;" type_identifier identifier ;) (declaration "code *pcStack_118;" type_identifier (pointer_declarator "*pcStack_118" * identifier) ;) (declaration "code *pcStack_114;" type_identifier (pointer_declarator "*pcStack_114" * identifier) ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "undefined4 uStack_104;" type_identifier identifier ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "undefined4 uStack_fc;" type_identifier identifier ;) (declaration "undefined4 uStack_f8;" type_identifier identifier ;) (declaration "undefined4 uStack_f4;" type_identifier identifier ;) (declaration "undefined4 uStack_f0;" type_identifier identifier ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "code *pcStack_e8;" type_identifier (pointer_declarator "*pcStack_e8" * identifier) ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "code *pcStack_e0;" type_identifier (pointer_declarator "*pcStack_e0" * identifier) ;) (declaration "code *pcStack_dc;" type_identifier (pointer_declarator "*pcStack_dc" * identifier) ;) (declaration "code *pcStack_d8;" type_identifier (pointer_declarator "*pcStack_d8" * identifier) ;) (declaration "code *pcStack_d4;" type_identifier (pointer_declarator "*pcStack_d4" * identifier) ;) (declaration "code *pcStack_d0;" type_identifier (pointer_declarator "*pcStack_d0" * identifier) ;) (declaration "code *pcStack_cc;" type_identifier (pointer_declarator "*pcStack_cc" * identifier) ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "code *pcStack_90;" type_identifier (pointer_declarator "*pcStack_90" * identifier) ;) (declaration "code *pcStack_8c;" type_identifier (pointer_declarator "*pcStack_8c" * identifier) ;) (declaration "code *pcStack_84;" type_identifier (pointer_declarator "*pcStack_84" * identifier) ;) (declaration "code *pcStack_80;" type_identifier (pointer_declarator "*pcStack_80" * identifier) ;) (declaration "code *pcStack_7c;" type_identifier (pointer_declarator "*pcStack_7c" * identifier) ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "code *pcStack_74;" type_identifier (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "code *pcStack_70;" type_identifier (pointer_declarator "*pcStack_70" * identifier) ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "code *pcStack_68;" type_identifier (pointer_declarator "*pcStack_68" * identifier) ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "code *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "code *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "code *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "code *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "code *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "pcVar20 = *(code **)(param_1 + 8);" (assignment_expression "pcVar20 = *(code **)(param_1 + 8)" identifier = (pointer_expression "*(code **)(param_1 + 8)" * (cast_expression "(code **)(param_1 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = *(code **)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_2c = *(code **)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(code **)PTR___stack_chk_guard_00190e24" * (cast_expression "(code **)PTR___stack_chk_guard_00190e24" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar25 = param_1;" (assignment_expression "pcVar25 = param_1" identifier = identifier) ;) (expression_statement "pcVar4 = param_3;" (assignment_expression "pcVar4 = param_3" identifier = identifier) ;) (expression_statement "pcStack_80 = unaff_s1;" (assignment_expression "pcStack_80 = unaff_s1" identifier = identifier) ;) (expression_statement "pcStack_7c = unaff_s2;" (assignment_expression "pcStack_7c = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_70 = unaff_s5;" (assignment_expression "pcStack_70 = unaff_s5" identifier = identifier) ;) (if_statement "if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }" if (parenthesized_expression "((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0))" ( (binary_expression "(pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)" (parenthesized_expression "(pcVar20 != (code *)0x0)" ( (binary_expression "pcVar20 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcStack_80 = param_2, param_2 != (code *)0x0)" ( (comma_expression "pcStack_80 = param_2, param_2 != (code *)0x0" (assignment_expression "pcStack_80 = param_2" identifier = identifier) , (binary_expression "param_2 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }" { (expression_statement "pcVar14 = (code *)(uint)(byte)*param_2;" (assignment_expression "pcVar14 = (code *)(uint)(byte)*param_2" identifier = (binary_expression "(code *)(uint)(byte)*param_2" (cast_expression "(code *)(uint)(byte)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier )))) * identifier)) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) (expression_statement "unaff_s7 = pcVar14;" (assignment_expression "unaff_s7 = pcVar14" identifier = identifier) ;) (if_statement "if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }" if (parenthesized_expression "(pcVar14 == (code *)&DAT_00000031)" ( (binary_expression "pcVar14 == (code *)&DAT_00000031" identifier == (cast_expression "(code *)&DAT_00000031" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000031" & identifier))) )) (compound_statement "{\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }" { (expression_statement "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);" (assignment_expression "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(param_1 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(param_1 + 0x38) - 1)" ( (binary_expression "*(uint *)(param_1 + 0x38) - 1" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*(code **)(param_1 + 0x38) = unaff_s0;" (assignment_expression "*(code **)(param_1 + 0x38) = unaff_s0" (pointer_expression "*(code **)(param_1 + 0x38)" * (cast_expression "(code **)(param_1 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar25 = unaff_s0;" (assignment_expression "pcVar25 = unaff_s0" identifier = identifier) ;) (if_statement "if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }" if (parenthesized_expression "(param_4 != (code *)0x0)" ( (binary_expression "param_4 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar25 = param_3;\n      }" { (expression_statement "pcVar25 = param_3;" (assignment_expression "pcVar25 = param_3" identifier = identifier) ;) })) (expression_statement "FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);" (call_expression "FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25)" identifier (argument_list "(param_1,param_2,unaff_s0,pcVar25)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pcVar4 = (code *)0x0;" (assignment_expression "pcVar4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (code *)0x0;" (assignment_expression "local_50 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar3 = param_3;" (assignment_expression "pcVar3 = param_3" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(pcVar20,0xb)" ( identifier , number_literal ))) ;) (labeled_statement "LAB_000e6494:\n      pcVar25 = pcVar20;" statement_identifier : (expression_statement "pcVar25 = pcVar20;" (assignment_expression "pcVar25 = pcVar20" identifier = identifier) ;)) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xd78)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0xd78)" ( (binary_expression "PTR_LAB_00190bc0 + 0xd78" identifier + number_literal) )))) )) (argument_list "(pcVar20,unaff_s0)" ( identifier , identifier ))) ;) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (expression_statement "unaff_s0 = pcVar14;" (assignment_expression "unaff_s0 = pcVar14" identifier = identifier) ;) (if_statement "if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }" if (parenthesized_expression "(&DAT_00000031 < pcVar14)" ( (binary_expression "&DAT_00000031 < pcVar14" (pointer_expression "&DAT_00000031" & identifier) < identifier) )) (compound_statement "{\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }" { (if_statement "if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }" if (parenthesized_expression "(pcVar14 < (code *)0x3a)" ( (binary_expression "pcVar14 < (code *)0x3a" identifier < (cast_expression "(code *)0x3a" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }" { (if_statement "if (&DAT_00000033 < pcVar14) goto LAB_000e6334;" if (parenthesized_expression "(&DAT_00000033 < pcVar14)" ( (binary_expression "&DAT_00000033 < pcVar14" (pointer_expression "&DAT_00000033" & identifier) < identifier) )) (goto_statement "goto LAB_000e6334;" goto statement_identifier ;)) (expression_statement "pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);" (assignment_expression "pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34)" identifier = (cast_expression "(code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34)" identifier (argument_list "(param_1,*(uint *)(param_2 + 0xc),&local_34)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , (pointer_expression "&local_34" & identifier) ))))) ;) (expression_statement "local_50 = (code *)0x0;" (assignment_expression "local_50 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000e6238;" goto statement_identifier ;) })) (if_statement "if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }" if (parenthesized_expression "(pcVar14 != (code *)0x9c)" ( (binary_expression "pcVar14 != (code *)0x9c" identifier != (cast_expression "(code *)0x9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }" { (if_statement "if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;" if (parenthesized_expression "(pcVar14 != (code *)0xa3)" ( (binary_expression "pcVar14 != (code *)0xa3" identifier != (cast_expression "(code *)0xa3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e63e8;" goto statement_identifier ;)) (expression_statement "bVar11 = (byte)param_2[0x28] ^ 0x9c;" (assignment_expression "bVar11 = (byte)param_2[0x28] ^ 0x9c" identifier = (binary_expression "(byte)param_2[0x28] ^ 0x9c" (cast_expression "(byte)param_2[0x28]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_2[0x28]" identifier [ number_literal ])) ^ number_literal)) ;) (if_statement "if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }" if (parenthesized_expression "((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'))" ( (binary_expression "(bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) == (parenthesized_expression "(*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" * (cast_expression "(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" ( (binary_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4" (pointer_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8)" * (cast_expression "(int *)(*(uint *)(param_2 + 0x10) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(param_2 + 0x10) + 8)" ( (binary_expression "*(uint *)(param_2 + 0x10) + 8" (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }" { (expression_statement "pcVar3 = (code *)&DAT_00000010;" (assignment_expression "pcVar3 = (code *)&DAT_00000010" identifier = (cast_expression "(code *)&DAT_00000010" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000010" & identifier))) ;) (if_statement "if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar3 = (code *)0x0;\n          }" { (expression_statement "pcVar3 = (code *)0x0;" (assignment_expression "pcVar3 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));" (call_expression "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc))" identifier (argument_list "(param_1,*(uint *)(param_2 + 0xc))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }" else (compound_statement "{\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }" { (expression_statement "pcVar3 = (code *)&DAT_00000010;" (assignment_expression "pcVar3 = (code *)&DAT_00000010" identifier = (cast_expression "(code *)&DAT_00000010" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000010" & identifier))) ;) (if_statement "if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar3 = (code *)0x0;\n          }" { (expression_statement "pcVar3 = (code *)0x0;" (assignment_expression "pcVar3 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" identifier (argument_list "()" ( ))) ;) }))) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (labeled_statement "LAB_000e631c:\n      pcVar3 = (code *)0x34;" statement_identifier : (expression_statement "pcVar3 = (code *)0x34;" (assignment_expression "pcVar3 = (code *)0x34" identifier = (cast_expression "(code *)0x34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }" if (parenthesized_expression "(pcVar14 == (code *)0x2d)" ( (binary_expression "pcVar14 == (code *)0x2d" identifier == (cast_expression "(code *)0x2d" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar3 = (code *)0x35;\n      }" { (expression_statement "pcVar3 = (code *)0x35;" (assignment_expression "pcVar3 = (code *)0x35" identifier = (cast_expression "(code *)0x35" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "unaff_s6 = (code *)0x80;" (assignment_expression "unaff_s6 = (code *)0x80" identifier = (cast_expression "(code *)0x80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar14 = pcVar3;" (assignment_expression "pcVar14 = pcVar3" identifier = identifier) ;) (labeled_statement "LAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);" statement_identifier : (expression_statement "pcVar8 = *(char **)(param_2 + 0xc);" (assignment_expression "pcVar8 = *(char **)(param_2 + 0xc)" identifier = (pointer_expression "*(char **)(param_2 + 0xc)" * (cast_expression "(char **)(param_2 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "cVar10 = *pcVar8;" (assignment_expression "cVar10 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }" if (parenthesized_expression "(cVar10 == -0x5c)" ( (binary_expression "cVar10 == -0x5c" identifier == number_literal) )) (compound_statement "{\n        cVar10 = pcVar8[0x28];\n      }" { (expression_statement "cVar10 = pcVar8[0x28];" (assignment_expression "cVar10 = pcVar8[0x28]" identifier = (subscript_expression "pcVar8[0x28]" identifier [ number_literal ])) ;) })) (expression_statement "unaff_s7 = pcVar14;" (assignment_expression "unaff_s7 = pcVar14" identifier = identifier) ;) (if_statement "if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" if (parenthesized_expression "(cVar10 == -0x5b)" ( (binary_expression "cVar10 == -0x5b" identifier == number_literal) )) (compound_statement "{\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }" { (expression_statement "iVar24 = **(int **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = **(int **)(pcVar8 + 0x14)" identifier = (pointer_expression "**(int **)(pcVar8 + 0x14)" * (pointer_expression "*(int **)(pcVar8 + 0x14)" * (cast_expression "(int **)(pcVar8 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x14)" ( (binary_expression "pcVar8 + 0x14" identifier + number_literal) )))))) ;) (labeled_statement "LAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;" statement_identifier : (expression_statement "unaff_s0 = (code *)PTR_LAB_00190c58;" (assignment_expression "unaff_s0 = (code *)PTR_LAB_00190c58" identifier = (cast_expression "(code *)PTR_LAB_00190c58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (1 < iVar24) goto LAB_000e63e8;" if (parenthesized_expression "(1 < iVar24)" ( (binary_expression "1 < iVar24" number_literal < identifier) )) (goto_statement "goto LAB_000e63e8;" goto statement_identifier ;)) }) (else_clause "else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" else (if_statement "if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" if (parenthesized_expression "(cVar10 == '\x7f')" ( (binary_expression "cVar10 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" { (expression_statement "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14)" identifier = (pointer_expression "*(int *)**(undefined4 **)(pcVar8 + 0x14)" * (cast_expression "(int *)**(undefined4 **)(pcVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar8 + 0x14)" * (pointer_expression "*(undefined4 **)(pcVar8 + 0x14)" * (cast_expression "(undefined4 **)(pcVar8 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x14)" ( (binary_expression "pcVar8 + 0x14" identifier + number_literal) )))))))) ;) (goto_statement "goto LAB_000e63d8;" goto statement_identifier ;) })))) (expression_statement "unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);" (assignment_expression "unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8)" identifier = (cast_expression "(code *)(PTR_LAB_00190c58 + -0x57b8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190c58 + -0x57b8)" ( (binary_expression "PTR_LAB_00190c58 + -0x57b8" identifier + number_literal) )))) ;) (expression_statement "pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);" (assignment_expression "pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34)" identifier = (cast_expression "(code *)FUN_000ea848(param_1,pcVar8,&local_34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(param_1,pcVar8,&local_34)" identifier (argument_list "(param_1,pcVar8,&local_34)" ( identifier , identifier , (pointer_expression "&local_34" & identifier) ))))) ;) (expression_statement "local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);" (assignment_expression "local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30)" identifier = (cast_expression "(code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30)" identifier (argument_list "(param_1,*(uint *)(param_2 + 0x10),&local_30)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) , (pointer_expression "&local_30" & identifier) ))))) ;) (expression_statement "pcVar4 = *(code **)(param_2 + 0x10);" (assignment_expression "pcVar4 = *(code **)(param_2 + 0x10)" identifier = (pointer_expression "*(code **)(param_2 + 0x10)" * (cast_expression "(code **)(param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar3 = pcVar14;" (assignment_expression "pcVar3 = pcVar14" identifier = identifier) ;) (expression_statement "local_50 = pcVar20;" (assignment_expression "local_50 = pcVar20" identifier = identifier) ;) (expression_statement "local_48 = param_3;" (assignment_expression "local_48 = param_3" identifier = identifier) ;) (expression_statement "local_44 = unaff_s6;" (assignment_expression "local_44 = unaff_s6" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));" (call_expression "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc))" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc4 + -0x59dc)" * (cast_expression "(code *)(PTR_LAB_00190bc4 + -0x59dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc4 + -0x59dc)" ( (binary_expression "PTR_LAB_00190bc4 + -0x59dc" identifier + number_literal) )))) )) (argument_list "(param_1,*(uint *)(param_2 + 0xc))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }" else (compound_statement "{\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }" { (expression_statement "pcVar3 = param_4;" (assignment_expression "pcVar3 = param_4" identifier = identifier) ;) (if_statement "if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }" if (parenthesized_expression "(pcVar14 == (code *)0x2c)" ( (binary_expression "pcVar14 == (code *)0x2c" identifier == (cast_expression "(code *)0x2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }" { (expression_statement "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);" (assignment_expression "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(param_1 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(param_1 + 0x38) - 1)" ( (binary_expression "*(uint *)(param_1 + 0x38) - 1" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*(code **)(param_1 + 0x38) = unaff_s0;" (assignment_expression "*(code **)(param_1 + 0x38) = unaff_s0" (pointer_expression "*(code **)(param_1 + 0x38)" * (cast_expression "(code **)(param_1 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);" (call_expression "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10)" identifier (argument_list "(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , identifier , (binary_expression "(uint)param_4 ^ 0x10" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) ^ number_literal) ))) ;) (expression_statement "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));" (call_expression "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10))" identifier (argument_list "(param_1,*(uint *)(param_2 + 0x10))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) ))) ;) (goto_statement "goto LAB_000e6494;" goto statement_identifier ;) })) (if_statement "if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }" if (parenthesized_expression "(pcVar14 < (code *)0x2d)" ( (binary_expression "pcVar14 < (code *)0x2d" identifier < (cast_expression "(code *)0x2d" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }" { (if_statement "if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }" if (parenthesized_expression "(pcVar14 == (code *)&DAT_00000013)" ( (binary_expression "pcVar14 == (code *)&DAT_00000013" identifier == (cast_expression "(code *)&DAT_00000013" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000013" & identifier))) )) (compound_statement "{\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }" { (expression_statement "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));" (call_expression "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc))" identifier (argument_list "(param_1,*(uint *)(param_2 + 0xc))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ))) ;) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (expression_statement "unaff_s0 = (code *)PTR_LAB_00190bd0;" (assignment_expression "unaff_s0 = (code *)PTR_LAB_00190bd0" identifier = (cast_expression "(code *)PTR_LAB_00190bd0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }" if (parenthesized_expression "(pcVar14 == (code *)0x2b)" ( (binary_expression "pcVar14 == (code *)0x2b" identifier == (cast_expression "(code *)0x2b" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }" { (expression_statement "unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);" (assignment_expression "unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc)" identifier = (cast_expression "(code *)(PTR_LAB_00190bd0 + 0x60cc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bd0 + 0x60cc)" ( (binary_expression "PTR_LAB_00190bd0 + 0x60cc" identifier + number_literal) )))) ;) (expression_statement "FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));" (call_expression "FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc))" identifier (argument_list "(param_1,*(uint *)(param_2 + 0xc))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));" (call_expression "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10))" identifier (argument_list "(param_1,*(uint *)(param_2 + 0x10))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) ))) ;) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (labeled_statement "LAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);" statement_identifier : (expression_statement "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);" (assignment_expression "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2)" identifier = (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4d8c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4d8c)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4d8c)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4d8c" identifier + number_literal) )))) )) (argument_list "(param_2)" ( identifier )))) ;)) (if_statement "if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }" { (expression_statement "pcVar25 = param_2;" (assignment_expression "pcVar25 = param_2" identifier = identifier) ;) (expression_statement "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();" (assignment_expression "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))()" identifier = (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4e14))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4e14))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4e14)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4e14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4e14)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4e14" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = param_4;" (assignment_expression "pcVar3 = param_4" identifier = identifier) ;) (if_statement "if (iVar24 != 0) goto joined_r0x000e64ac;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;)) (expression_statement "pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);" (assignment_expression "pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34)" identifier = (cast_expression "(code *)FUN_000ea848(param_1,param_2,&local_34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(param_1,param_2,&local_34)" identifier (argument_list "(param_1,param_2,&local_34)" ( identifier , identifier , (pointer_expression "&local_34" & identifier) ))))) ;) (expression_statement "pcVar14 = (code *)0x12;" (assignment_expression "pcVar14 = (code *)0x12" identifier = (cast_expression "(code *)0x12" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);" (assignment_expression "param_4 = (code *)(uint)(unaff_s6 != (code *)0x0)" identifier = (cast_expression "(code *)(uint)(unaff_s6 != (code *)0x0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(unaff_s6 != (code *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s6 != (code *)0x0)" ( (binary_expression "unaff_s6 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (expression_statement "local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);" (assignment_expression "local_50 = (code *)(uint)(unaff_s6 != (code *)0x0)" identifier = (cast_expression "(code *)(uint)(unaff_s6 != (code *)0x0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(unaff_s6 != (code *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s6 != (code *)0x0)" ( (binary_expression "unaff_s6 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) }) (else_clause "else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }" else (compound_statement "{\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }" { (expression_statement "pcVar4 = (code *)0x0;" (assignment_expression "pcVar4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (code *)0x0;" (assignment_expression "local_50 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar14 = (code *)&DAT_0000000b;" (assignment_expression "pcVar14 = (code *)&DAT_0000000b" identifier = (cast_expression "(code *)&DAT_0000000b" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000b" & identifier))) ;) (expression_statement "param_4 = unaff_s6;" (assignment_expression "param_4 = unaff_s6" identifier = identifier) ;) }))) (labeled_statement "LAB_000e6238:\n        pcVar25 = pcVar20;" statement_identifier : (expression_statement "pcVar25 = pcVar20;" (assignment_expression "pcVar25 = pcVar20" identifier = identifier) ;)) (expression_statement "pcVar3 = param_3;" (assignment_expression "pcVar3 = param_3" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(pcVar20,pcVar14)" ( identifier , identifier ))) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) }) (else_clause "else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }" else (compound_statement "{\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }" { (if_statement "if (pcVar14 == (code *)0x2d) goto LAB_000e631c;" if (parenthesized_expression "(pcVar14 == (code *)0x2d)" ( (binary_expression "pcVar14 == (code *)0x2d" identifier == (cast_expression "(code *)0x2d" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e631c;" goto statement_identifier ;)) (if_statement "if (pcVar14 != (code *)0x30) goto LAB_000e63e8;" if (parenthesized_expression "(pcVar14 != (code *)0x30)" ( (binary_expression "pcVar14 != (code *)0x30" identifier != (cast_expression "(code *)0x30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e63e8;" goto statement_identifier ;)) (expression_statement "pcVar4 = param_2 + 0x14;" (assignment_expression "pcVar4 = param_2 + 0x14" identifier = (binary_expression "param_2 + 0x14" identifier + number_literal)) ;) (expression_statement "local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);" (assignment_expression "local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc)" identifier = (cast_expression "(code *)(PTR_LAB_00190bd0 + 0x60cc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bd0 + 0x60cc)" ( (binary_expression "PTR_LAB_00190bd0 + 0x60cc" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = param_3;" (assignment_expression "pcVar3 = param_3" identifier = identifier) ;) (expression_statement "local_4c = param_4;" (assignment_expression "local_4c = param_4" identifier = identifier) ;) (expression_statement "FUN_000ec9a4(param_1,param_2 + 0xc);" (call_expression "FUN_000ec9a4(param_1,param_2 + 0xc)" identifier (argument_list "(param_1,param_2 + 0xc)" ( identifier , (binary_expression "param_2 + 0xc" identifier + number_literal) ))) ;) }))) }))) (labeled_statement "joined_r0x000e64ac:\n    param_4 = pcVar3;" statement_identifier : (expression_statement "param_4 = pcVar3;" (assignment_expression "param_4 = pcVar3" identifier = identifier) ;)) (if_statement "if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" { (expression_statement "pcVar25 = param_1;" (assignment_expression "pcVar25 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x4854))();" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4854)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4854)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4854" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) (expression_statement "param_2 = local_30;" (assignment_expression "param_2 = local_30" identifier = identifier) ;) (expression_statement "pcStack_7c = param_1;" (assignment_expression "pcStack_7c = param_1" identifier = identifier) ;) (expression_statement "pcStack_70 = param_3;" (assignment_expression "pcStack_70 = param_3" identifier = identifier) ;) (if_statement "if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" if (parenthesized_expression "(local_30 != (code *)0x0)" ( (binary_expression "local_30 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" { (expression_statement "pcVar25 = param_1;" (assignment_expression "pcVar25 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x4854))();" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4854)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4854)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4854" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) })) (expression_statement "pcVar14 = *(code **)puVar2;" (assignment_expression "pcVar14 = *(code **)puVar2" identifier = (pointer_expression "*(code **)puVar2" * (cast_expression "(code **)puVar2" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (local_2c == pcVar14) {\n    return pcVar14;\n  }" if (parenthesized_expression "(local_2c == pcVar14)" ( (binary_expression "local_2c == pcVar14" identifier == identifier) )) (compound_statement "{\n    return pcVar14;\n  }" { (return_statement "return pcVar14;" return identifier ;) })) (expression_statement "pcVar27 = FUN_000e6550;" (assignment_expression "pcVar27 = FUN_000e6550" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar23 = PTR___stack_chk_fail_00190df8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_78 = puVar2;" (assignment_expression "puStack_78 = puVar2" identifier = identifier) ;) (expression_statement "pcVar17 = *(code **)(puVar23 + 0xaa8d4);" (assignment_expression "pcVar17 = *(code **)(puVar23 + 0xaa8d4)" identifier = (pointer_expression "*(code **)(puVar23 + 0xaa8d4)" * (cast_expression "(code **)(puVar23 + 0xaa8d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0xaa8d4)" ( (binary_expression "puVar23 + 0xaa8d4" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = *(code **)(pcVar25 + 8);" (assignment_expression "pcVar19 = *(code **)(pcVar25 + 8)" identifier = (pointer_expression "*(code **)(pcVar25 + 8)" * (cast_expression "(code **)(pcVar25 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 8)" ( (binary_expression "pcVar25 + 8" identifier + number_literal) ))))) ;) (expression_statement "iStack_94 = 0;" (assignment_expression "iStack_94 = 0" identifier = number_literal) ;) (expression_statement "pcStack_90 = (code *)0x0;" (assignment_expression "pcStack_90 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_8c = *(code **)pcVar17;" (assignment_expression "pcStack_8c = *(code **)pcVar17" identifier = (pointer_expression "*(code **)pcVar17" * (cast_expression "(code **)pcVar17" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar3 = pcVar25;" (assignment_expression "pcVar3 = pcVar25" identifier = identifier) ;) (expression_statement "pcVar26 = param_2;" (assignment_expression "pcVar26 = param_2" identifier = identifier) ;) (expression_statement "pcVar14 = pcVar4;" (assignment_expression "pcVar14 = pcVar4" identifier = identifier) ;) (expression_statement "pcStack_e8 = unaff_s0;" (assignment_expression "pcStack_e8 = unaff_s0" identifier = identifier) ;) (expression_statement "pcVar16 = pcStack_80;" (assignment_expression "pcVar16 = pcStack_80" identifier = identifier) ;) (expression_statement "pcVar21 = pcStack_70;" (assignment_expression "pcVar21 = pcStack_70" identifier = identifier) ;) (expression_statement "pcVar22 = unaff_s6;" (assignment_expression "pcVar22 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_84 = unaff_s0;" (assignment_expression "pcStack_84 = unaff_s0" identifier = identifier) ;) (expression_statement "pcStack_74 = pcVar20;" (assignment_expression "pcStack_74 = pcVar20" identifier = identifier) ;) (expression_statement "pcStack_6c = unaff_s6;" (assignment_expression "pcStack_6c = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_68 = unaff_s7;" (assignment_expression "pcStack_68 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar27;" (assignment_expression "pcStack_64 = pcVar27" identifier = identifier) ;) (if_statement "if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;" if (parenthesized_expression "((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0))" ( (binary_expression "(pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)" (parenthesized_expression "(pcVar19 == (code *)0x0)" ( (binary_expression "pcVar19 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcStack_e8 = param_2, param_2 == (code *)0x0)" ( (comma_expression "pcStack_e8 = param_2, param_2 == (code *)0x0" (assignment_expression "pcStack_e8 = param_2" identifier = identifier) , (binary_expression "param_2 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000e667c;" goto statement_identifier ;)) (expression_statement "uVar5 = (uint)(byte)*param_2;" (assignment_expression "uVar5 = (uint)(byte)*param_2" identifier = (binary_expression "(uint)(byte)*param_2" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "pcVar22 = (code *)(uVar5 ^ 1);" (assignment_expression "pcVar22 = (code *)(uVar5 ^ 1)" identifier = (cast_expression "(code *)(uVar5 ^ 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 ^ 1)" ( (binary_expression "uVar5 ^ 1" identifier ^ number_literal) )))) ;) (if_statement "if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }" if (parenthesized_expression "(uVar5 == 0x31)" ( (binary_expression "uVar5 == 0x31" identifier == number_literal) )) (compound_statement "{\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }" { (if_statement "if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }" if (parenthesized_expression "(param_4 == (code *)0x0)" ( (binary_expression "param_4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }" { (expression_statement "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);" (assignment_expression "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(pcVar25 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pcVar25 + 0x38) - 1)" ( (binary_expression "*(uint *)(pcVar25 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar25 + 0x38)" * (cast_expression "(uint *)(pcVar25 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x38)" ( (binary_expression "pcVar25 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*(code **)(pcVar25 + 0x38) = pcVar20;" (assignment_expression "*(code **)(pcVar25 + 0x38) = pcVar20" (pointer_expression "*(code **)(pcVar25 + 0x38)" * (cast_expression "(code **)(pcVar25 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x38)" ( (binary_expression "pcVar25 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_000e55ac();" (call_expression "FUN_000e55ac()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_2 = pcVar20;" (assignment_expression "param_2 = pcVar20" identifier = identifier) ;) (labeled_statement "LAB_000e6640:\n      pcVar3 = pcVar19;" statement_identifier : (expression_statement "pcVar3 = pcVar19;" (assignment_expression "pcVar3 = pcVar19" identifier = identifier) ;)) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20)" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))" ( (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78)" * (cast_expression "(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa670) + 0xd78)" ( (binary_expression "*(int *)(puVar23 + 0xaa670) + 0xd78" (pointer_expression "*(int *)(puVar23 + 0xaa670)" * (cast_expression "(int *)(puVar23 + 0xaa670)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa670)" ( (binary_expression "puVar23 + 0xaa670" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar19,pcVar20)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      FUN_000e55ac();\n    }" else (compound_statement "{\n      FUN_000e55ac();\n    }" { (expression_statement "FUN_000e55ac();" (call_expression "FUN_000e55ac()" identifier (argument_list "()" ( ))) ;) }))) (goto_statement "goto LAB_000e6654;" goto statement_identifier ;) })) (if_statement "if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" if (parenthesized_expression "(uVar5 < 0x32)" ( (binary_expression "uVar5 < 0x32" identifier < number_literal) )) (compound_statement "{\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }" { (if_statement "if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" if (parenthesized_expression "(uVar5 == 0x2c)" ( (binary_expression "uVar5 == 0x2c" identifier == number_literal) )) (compound_statement "{\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }" { (expression_statement "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);" (assignment_expression "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550)" identifier = (cast_expression "(code *)(*(int *)(puVar23 + 0xaa680) + 0x6550)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa680) + 0x6550)" ( (binary_expression "*(int *)(puVar23 + 0xaa680) + 0x6550" (pointer_expression "*(int *)(puVar23 + 0xaa680)" * (cast_expression "(int *)(puVar23 + 0xaa680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa680)" ( (binary_expression "puVar23 + 0xaa680" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_000e6550();" (call_expression "FUN_000e6550()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);" (call_expression "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" identifier (argument_list "(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) , identifier , identifier ))) ;) }) (else_clause "else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" else (if_statement "if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" if (parenthesized_expression "(uVar5 < 0x2d)" ( (binary_expression "uVar5 < 0x2d" identifier < number_literal) )) (compound_statement "{\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }" { (if_statement "if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }" if (parenthesized_expression "(uVar5 != 0x13)" ( (binary_expression "uVar5 != 0x13" identifier != number_literal) )) (compound_statement "{\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }" { (if_statement "if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }" if (parenthesized_expression "(uVar5 == 0x2b)" ( (binary_expression "uVar5 == 0x2b" identifier == number_literal) )) (compound_statement "{\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }" { (expression_statement "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);" (assignment_expression "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(pcVar25 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pcVar25 + 0x38) - 1)" ( (binary_expression "*(uint *)(pcVar25 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar25 + 0x38)" * (cast_expression "(uint *)(pcVar25 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x38)" ( (binary_expression "pcVar25 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*(code **)(pcVar25 + 0x38) = pcVar20;" (assignment_expression "*(code **)(pcVar25 + 0x38) = pcVar20" (pointer_expression "*(code **)(pcVar25 + 0x38)" * (cast_expression "(code **)(pcVar25 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x38)" ( (binary_expression "pcVar25 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);" (call_expression "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" identifier (argument_list "(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" identifier = identifier) ;) (goto_statement "goto LAB_000e6640;" goto statement_identifier ;) })) (labeled_statement "LAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);" statement_identifier : (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) ))))) ;)) (expression_statement "pcVar20 = pcVar22;" (assignment_expression "pcVar20 = pcVar22" identifier = identifier) ;) (goto_statement "goto LAB_000e689c;" goto statement_identifier ;) })) (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" else (compound_statement "{\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" { (if_statement "if (uVar5 == 0x2d) goto LAB_000e67d0;" if (parenthesized_expression "(uVar5 == 0x2d)" ( (binary_expression "uVar5 == 0x2d" identifier == number_literal) )) (goto_statement "goto LAB_000e67d0;" goto statement_identifier ;)) (if_statement "if (uVar5 != 0x30) goto LAB_000e6898;" if (parenthesized_expression "(uVar5 != 0x30)" ( (binary_expression "uVar5 != 0x30" identifier != number_literal) )) (goto_statement "goto LAB_000e6898;" goto statement_identifier ;)) (expression_statement "pcVar14 = param_2 + 0x14;" (assignment_expression "pcVar14 = param_2 + 0x14" identifier = (binary_expression "param_2 + 0x14" identifier + number_literal)) ;) (expression_statement "FUN_000ec9a4();" (call_expression "FUN_000ec9a4()" identifier (argument_list "()" ( ))) ;) }))))) (labeled_statement "LAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);" statement_identifier : (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) ))))) ;)) (if_statement "if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }" if (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }" { (labeled_statement "LAB_000e6660:\n      pcVar3 = pcVar25;" statement_identifier : (expression_statement "pcVar3 = pcVar25;" (assignment_expression "pcVar3 = pcVar25" identifier = identifier) ;)) (expression_statement "(*(code *)(iVar24 + -0x4854))();" (call_expression "(*(code *)(iVar24 + -0x4854))()" (parenthesized_expression "(*(code *)(iVar24 + -0x4854))" ( (pointer_expression "*(code *)(iVar24 + -0x4854)" * (cast_expression "(code *)(iVar24 + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x4854)" ( (binary_expression "iVar24 + -0x4854" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" else (compound_statement "{\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" { (expression_statement "pcVar20 = pcVar22;" (assignment_expression "pcVar20 = pcVar22" identifier = identifier) ;) (if_statement "if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }" if (parenthesized_expression "(uVar5 < 0x3a)" ( (binary_expression "uVar5 < 0x3a" identifier < number_literal) )) (compound_statement "{\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }" { (if_statement "if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }" if (parenthesized_expression "(0x33 < uVar5)" ( (binary_expression "0x33 < uVar5" number_literal < identifier) )) (compound_statement "{\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }" { (labeled_statement "LAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);" statement_identifier : (expression_statement "pcVar8 = *(char **)(param_2 + 0xc);" (assignment_expression "pcVar8 = *(char **)(param_2 + 0xc)" identifier = (pointer_expression "*(char **)(param_2 + 0xc)" * (cast_expression "(char **)(param_2 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "cVar10 = *pcVar8;" (assignment_expression "cVar10 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }" if (parenthesized_expression "(cVar10 == -0x5c)" ( (binary_expression "cVar10 == -0x5c" identifier == number_literal) )) (compound_statement "{\n          cVar10 = pcVar8[0x28];\n        }" { (expression_statement "cVar10 = pcVar8[0x28];" (assignment_expression "cVar10 = pcVar8[0x28]" identifier = (subscript_expression "pcVar8[0x28]" identifier [ number_literal ])) ;) })) (if_statement "if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" if (parenthesized_expression "(cVar10 == -0x5b)" ( (binary_expression "cVar10 == -0x5b" identifier == number_literal) )) (compound_statement "{\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }" { (expression_statement "iVar24 = **(int **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = **(int **)(pcVar8 + 0x14)" identifier = (pointer_expression "**(int **)(pcVar8 + 0x14)" * (pointer_expression "*(int **)(pcVar8 + 0x14)" * (cast_expression "(int **)(pcVar8 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x14)" ( (binary_expression "pcVar8 + 0x14" identifier + number_literal) )))))) ;) (labeled_statement "LAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;" statement_identifier : (if_statement "if (1 < iVar24) goto LAB_000e6898;" if (parenthesized_expression "(1 < iVar24)" ( (binary_expression "1 < iVar24" number_literal < identifier) )) (goto_statement "goto LAB_000e6898;" goto statement_identifier ;))) }) (else_clause "else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" else (if_statement "if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" if (parenthesized_expression "(cVar10 == '\x7f')" ( (binary_expression "cVar10 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" { (expression_statement "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14)" identifier = (pointer_expression "*(int *)**(undefined4 **)(pcVar8 + 0x14)" * (cast_expression "(int *)**(undefined4 **)(pcVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar8 + 0x14)" * (pointer_expression "*(undefined4 **)(pcVar8 + 0x14)" * (cast_expression "(undefined4 **)(pcVar8 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x14)" ( (binary_expression "pcVar8 + 0x14" identifier + number_literal) )))))))) ;) (goto_statement "goto LAB_000e688c;" goto statement_identifier ;) })))) (expression_statement "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);" (assignment_expression "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8)" identifier = (cast_expression "(code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa708) + -0x57b8)" ( (binary_expression "*(int *)(puVar23 + 0xaa708) + -0x57b8" (pointer_expression "*(int *)(puVar23 + 0xaa708)" * (cast_expression "(int *)(puVar23 + 0xaa708)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa708)" ( (binary_expression "puVar23 + 0xaa708" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);" (assignment_expression "unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94)" identifier = (cast_expression "(code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(pcVar25,pcVar8,&iStack_94)" identifier (argument_list "(pcVar25,pcVar8,&iStack_94)" ( identifier , identifier , (pointer_expression "&iStack_94" & identifier) ))))) ;) (expression_statement "FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);" (call_expression "FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90)" identifier (argument_list "(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) , (pointer_expression "&pcStack_90" & identifier) ))) ;) (expression_statement "pcVar14 = *(code **)(param_2 + 0x10);" (assignment_expression "pcVar14 = *(code **)(param_2 + 0x10)" identifier = (pointer_expression "*(code **)(param_2 + 0x10)" * (cast_expression "(code **)(param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22)" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))" ( (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc)" * (cast_expression "(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa674) + -0x59dc)" ( (binary_expression "*(int *)(puVar23 + 0xaa674) + -0x59dc" (pointer_expression "*(int *)(puVar23 + 0xaa674)" * (cast_expression "(int *)(puVar23 + 0xaa674)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa674)" ( (binary_expression "puVar23 + 0xaa674" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , identifier , identifier ))) ;) (if_statement "if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }" if (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }" { (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000e6660;" goto statement_identifier ;) })) (goto_statement "goto LAB_000e6670;" goto statement_identifier ;) })) (expression_statement "pcVar14 = (code *)FUN_000ea848();" (assignment_expression "pcVar14 = (code *)FUN_000ea848()" identifier = (cast_expression "(code *)FUN_000ea848()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }" else (compound_statement "{\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }" { (if_statement "if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }" if (parenthesized_expression "(uVar5 == 0x9c)" ( (binary_expression "uVar5 == 0x9c" identifier == number_literal) )) (compound_statement "{\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }" { (labeled_statement "LAB_000e67d0:\n        pcVar22 = (code *)0x34;" statement_identifier : (expression_statement "pcVar22 = (code *)0x34;" (assignment_expression "pcVar22 = (code *)0x34" identifier = (cast_expression "(code *)0x34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }" if (parenthesized_expression "(uVar5 != 0x2d)" ( (binary_expression "uVar5 != 0x2d" identifier != number_literal) )) (compound_statement "{\n          pcVar22 = (code *)0x35;\n        }" { (expression_statement "pcVar22 = (code *)0x35;" (assignment_expression "pcVar22 = (code *)0x35" identifier = (cast_expression "(code *)0x35" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "param_4 = (code *)0x80;" (assignment_expression "param_4 = (code *)0x80" identifier = (cast_expression "(code *)0x80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000e67e4;" goto statement_identifier ;) })) (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }" if (parenthesized_expression "(uVar5 == 0xa3)" ( (binary_expression "uVar5 == 0xa3" identifier == number_literal) )) (compound_statement "{\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }" { (if_statement "if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }" if (parenthesized_expression "((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'))" ( (binary_expression "(param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" (parenthesized_expression "(param_2[0x28] == (code)0x9c)" ( (binary_expression "param_2[0x28] == (code)0x9c" (subscript_expression "param_2[0x28]" identifier [ number_literal ]) == (cast_expression "(code)0x9c" ( (type_descriptor "code" type_identifier) ) number_literal)) )) == (parenthesized_expression "(*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" * (cast_expression "(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" ( (binary_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4" (pointer_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8)" * (cast_expression "(int *)(*(uint *)(param_2 + 0x10) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(param_2 + 0x10) + 8)" ( (binary_expression "*(uint *)(param_2 + 0x10) + 8" (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          FUN_000e60cc();\n        }" { (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          FUN_000e6550();\n        }" else (compound_statement "{\n          FUN_000e6550();\n        }" { (expression_statement "FUN_000e6550();" (call_expression "FUN_000e6550()" identifier (argument_list "()" ( ))) ;) }))) (goto_statement "goto LAB_000e6654;" goto statement_identifier ;) })) (labeled_statement "LAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);" statement_identifier : (expression_statement "iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);" (assignment_expression "iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2)" identifier = (call_expression "(*(code *)(iVar24 + -0x4e14))(param_2)" (parenthesized_expression "(*(code *)(iVar24 + -0x4e14))" ( (pointer_expression "*(code *)(iVar24 + -0x4e14)" * (cast_expression "(code *)(iVar24 + -0x4e14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x4e14)" ( (binary_expression "iVar24 + -0x4e14" identifier + number_literal) )))) )) (argument_list "(param_2)" ( identifier )))) ;)) (if_statement "if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }" { (expression_statement "pcVar3 = param_2;" (assignment_expression "pcVar3 = param_2" identifier = identifier) ;) (expression_statement "iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();" (assignment_expression "iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))()" identifier = (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))()" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))" ( (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c)" * (cast_expression "(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa654) + -0x4d8c)" ( (binary_expression "*(int *)(puVar23 + 0xaa654) + -0x4d8c" (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" identifier = identifier) ;) (if_statement "if (iVar24 != 0) goto LAB_000e6654;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000e6654;" goto statement_identifier ;)) (expression_statement "param_4 = (code *)(uint)(param_4 != (code *)0x0);" (assignment_expression "param_4 = (code *)(uint)(param_4 != (code *)0x0)" identifier = (cast_expression "(code *)(uint)(param_4 != (code *)0x0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(param_4 != (code *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 != (code *)0x0)" ( (binary_expression "param_4 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (expression_statement "pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);" (assignment_expression "pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94)" identifier = (cast_expression "(code *)FUN_000ea848(pcVar25,param_2,&iStack_94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(pcVar25,param_2,&iStack_94)" identifier (argument_list "(pcVar25,param_2,&iStack_94)" ( identifier , identifier , (pointer_expression "&iStack_94" & identifier) ))))) ;) (expression_statement "pcVar22 = (code *)&DAT_00000014;" (assignment_expression "pcVar22 = (code *)&DAT_00000014" identifier = (cast_expression "(code *)&DAT_00000014" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000014" & identifier))) ;) }) (else_clause "else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }" else (compound_statement "{\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }" { (expression_statement "pcVar14 = (code *)0x0;" (assignment_expression "pcVar14 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar22 = (code *)&DAT_0000000b;" (assignment_expression "pcVar22 = (code *)&DAT_0000000b" identifier = (cast_expression "(code *)&DAT_0000000b" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000b" & identifier))) ;) }))) }))) (expression_statement "pcVar3 = pcVar19;" (assignment_expression "pcVar3 = pcVar19" identifier = identifier) ;) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4)" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))" ( (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc)" * (cast_expression "(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa670) + 0x10fc)" ( (binary_expression "*(int *)(puVar23 + 0xaa670) + 0x10fc" (pointer_expression "*(int *)(puVar23 + 0xaa670)" * (cast_expression "(int *)(puVar23 + 0xaa670)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa670)" ( (binary_expression "puVar23 + 0xaa670" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar19,pcVar22,pcVar14,pcVar4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" identifier = identifier) ;) (if_statement "if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }" if (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }" { (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000e6660;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000e6670:\n  pcVar26 = pcStack_90;" statement_identifier : (expression_statement "pcVar26 = pcStack_90;" (assignment_expression "pcVar26 = pcStack_90" identifier = identifier) ;)) (expression_statement "pcStack_e8 = param_2;" (assignment_expression "pcStack_e8 = param_2" identifier = identifier) ;) (expression_statement "pcVar16 = pcVar25;" (assignment_expression "pcVar16 = pcVar25" identifier = identifier) ;) (expression_statement "pcVar20 = param_4;" (assignment_expression "pcVar20 = param_4" identifier = identifier) ;) (expression_statement "pcVar21 = pcVar4;" (assignment_expression "pcVar21 = pcVar4" identifier = identifier) ;) (if_statement "if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }" if (parenthesized_expression "(pcStack_90 != (code *)0x0)" ( (binary_expression "pcStack_90 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }" { (expression_statement "pcVar3 = pcVar25;" (assignment_expression "pcVar3 = pcVar25" identifier = identifier) ;) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))()" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))" ( (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854)" * (cast_expression "(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa654) + -0x4854)" ( (binary_expression "*(int *)(puVar23 + 0xaa654) + -0x4854" (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }" statement_identifier : (if_statement "if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }" if (parenthesized_expression "(pcStack_8c == *(code **)pcVar17)" ( (binary_expression "pcStack_8c == *(code **)pcVar17" identifier == (pointer_expression "*(code **)pcVar17" * (cast_expression "(code **)pcVar17" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return *(code **)pcVar17;\n  }" { (return_statement "return *(code **)pcVar17;" return (pointer_expression "*(code **)pcVar17" * (cast_expression "(code **)pcVar17" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "pcVar25 = *(code **)(puVar23 + 0xaa8a8);" (assignment_expression "pcVar25 = *(code **)(puVar23 + 0xaa8a8)" identifier = (pointer_expression "*(code **)(puVar23 + 0xaa8a8)" * (cast_expression "(code **)(puVar23 + 0xaa8a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0xaa8a8)" ( (binary_expression "puVar23 + 0xaa8a8" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar15 = *(int **)(pcVar25 + 0xaa46c);" (assignment_expression "piVar15 = *(int **)(pcVar25 + 0xaa46c)" identifier = (pointer_expression "*(int **)(pcVar25 + 0xaa46c)" * (cast_expression "(int **)(pcVar25 + 0xaa46c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0xaa46c)" ( (binary_expression "pcVar25 + 0xaa46c" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(pcVar3 + 8);" (assignment_expression "uVar5 = *(uint *)(pcVar3 + 8)" identifier = (pointer_expression "*(uint *)(pcVar3 + 8)" * (cast_expression "(uint *)(pcVar3 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 8)" ( (binary_expression "pcVar3 + 8" identifier + number_literal) ))))) ;) (expression_statement "iStack_16c = 0;" (assignment_expression "iStack_16c = 0" identifier = number_literal) ;) (expression_statement "iStack_168 = 0;" (assignment_expression "iStack_168 = 0" identifier = number_literal) ;) (expression_statement "iStack_ec = *piVar15;" (assignment_expression "iStack_ec = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "pcStack_e4 = pcVar16;" (assignment_expression "pcStack_e4 = pcVar16" identifier = identifier) ;) (expression_statement "pcStack_e0 = pcVar17;" (assignment_expression "pcStack_e0 = pcVar17" identifier = identifier) ;) (expression_statement "pcStack_dc = pcVar19;" (assignment_expression "pcStack_dc = pcVar19" identifier = identifier) ;) (expression_statement "pcStack_d8 = pcVar20;" (assignment_expression "pcStack_d8 = pcVar20" identifier = identifier) ;) (expression_statement "pcStack_d4 = pcVar21;" (assignment_expression "pcStack_d4 = pcVar21" identifier = identifier) ;) (expression_statement "pcStack_d0 = pcVar22;" (assignment_expression "pcStack_d0 = pcVar22" identifier = identifier) ;) (expression_statement "pcStack_cc = unaff_s7;" (assignment_expression "pcStack_cc = unaff_s7" identifier = identifier) ;) (if_statement "if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar14 = (code *)0x0;\n  }" { (expression_statement "pcVar14 = (code *)0x0;" (assignment_expression "pcVar14 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" else (if_statement "if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" if (parenthesized_expression "(pcVar26 == (code *)0x0)" ( (binary_expression "pcVar26 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar5,0x49,0,pcVar14,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "pcVar16 = pcVar14;" (assignment_expression "pcVar16 = pcVar14" identifier = identifier) ;) }) (else_clause "else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" else (compound_statement "{\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" { (expression_statement "cVar1 = *pcVar26;" (assignment_expression "cVar1 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (expression_statement "uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;" (assignment_expression "uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff" identifier = (binary_expression "(uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff" (call_expression "(uint)((code *)(uint)(byte)cVar1 + -0x13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((code *)(uint)(byte)cVar1 + -0x13)" ( (binary_expression "(code *)(uint)(byte)cVar1 + -0x13" (cast_expression "(code *)(uint)(byte)cVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier))) + number_literal) ))) & number_literal)) ;) (if_statement "if (uVar6 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }" if (parenthesized_expression "(uVar6 < 0x97)" ( (binary_expression "uVar6 < 0x97" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }" { comment comment (expression_statement "pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();" (assignment_expression "pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))()" identifier = (cast_expression "(code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))()" (parenthesized_expression "(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))" ( (pointer_expression "*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68)" * (parenthesized_expression "(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68)" ( (binary_expression "pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68" (binary_expression "pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" * (cast_expression "(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" ( (binary_expression "*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4" (binary_expression "*(int *)(pcVar25 + 0xa9fa4) + 0x3d88" (pointer_expression "*(int *)(pcVar25 + 0xa9fa4)" * (cast_expression "(int *)(pcVar25 + 0xa9fa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xa9fa4)" ( (binary_expression "pcVar25 + 0xa9fa4" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar6 * 4" identifier * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar20;" return identifier ;) })) (expression_statement "puVar7 = *(uint **)(pcVar26 + 0x14);" (assignment_expression "puVar7 = *(uint **)(pcVar26 + 0x14)" identifier = (pointer_expression "*(uint **)(pcVar26 + 0x14)" * (cast_expression "(uint **)(pcVar26 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x14)" ( (binary_expression "pcVar26 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);" (assignment_expression "pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(pcVar3 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pcVar3 + 0x38) - 1)" ( (binary_expression "*(uint *)(pcVar3 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar3 + 0x38)" * (cast_expression "(uint *)(pcVar3 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x38)" ( (binary_expression "pcVar3 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "uVar6 = *puVar7;" (assignment_expression "uVar6 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(code **)(pcVar3 + 0x38) = pcVar20;" (assignment_expression "*(code **)(pcVar3 + 0x38) = pcVar20" (pointer_expression "*(code **)(pcVar3 + 0x38)" * (cast_expression "(code **)(pcVar3 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x38)" ( (binary_expression "pcVar3 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = *(uint *)(pcVar26 + 0xc);" (assignment_expression "uVar13 = *(uint *)(pcVar26 + 0xc)" identifier = (pointer_expression "*(uint *)(pcVar26 + 0xc)" * (cast_expression "(uint *)(pcVar26 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0xc)" ( (binary_expression "pcVar26 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }" { (expression_statement "pcVar26 = (code *)0x0;" (assignment_expression "pcVar26 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar17 = (code *)(uint)(byte)cVar1;" (assignment_expression "pcVar17 = (code *)(uint)(byte)cVar1" identifier = (cast_expression "(code *)(uint)(byte)cVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) }) (else_clause "else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }" else (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1f0) + -0x69a4" (pointer_expression "*(int *)(pcVar25 + 0xaa1f0)" * (cast_expression "(int *)(pcVar25 + 0xaa1f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1f0)" ( (binary_expression "pcVar25 + 0xaa1f0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(auStack_15c)" ( identifier ))) ;) (expression_statement "uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);" (assignment_expression "uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c)" identifier = (call_expression "FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c)" identifier (argument_list "(pcVar3,auStack_15c,&iStack_16c)" ( identifier , identifier , (pointer_expression "&iStack_16c" & identifier) )))) ;) (expression_statement "uStack_134 = auStack_15c[0];" (assignment_expression "uStack_134 = auStack_15c[0]" identifier = (subscript_expression "auStack_15c[0]" identifier [ number_literal ])) ;) (expression_statement "pcVar26 = (code *)&uStack_124;" (assignment_expression "pcVar26 = (code *)&uStack_124" identifier = (cast_expression "(code *)&uStack_124" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_124" & identifier))) ;) (expression_statement "uStack_158 = uStack_158 & 0xffffefff;" (assignment_expression "uStack_158 = uStack_158 & 0xffffefff" identifier = (binary_expression "uStack_158 & 0xffffefff" identifier & number_literal)) ;) (expression_statement "auStack_15c[0] = (code)0xa4;" (assignment_expression "auStack_15c[0] = (code)0xa4" (subscript_expression "auStack_15c[0]" identifier [ number_literal ]) = (cast_expression "(code)0xa4" ( (type_descriptor "code" type_identifier) ) number_literal)) ;) (expression_statement "uStack_120 = 0;" (assignment_expression "uStack_120 = 0" identifier = number_literal) ;) (expression_statement "uStack_11c = 0;" (assignment_expression "uStack_11c = 0" identifier = number_literal) ;) (expression_statement "pcStack_114 = (code *)0x0;" (assignment_expression "pcStack_114 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_110 = 0;" (assignment_expression "uStack_110 = 0" identifier = number_literal) ;) (expression_statement "uStack_10c = 0;" (assignment_expression "uStack_10c = 0" identifier = number_literal) ;) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" identifier = number_literal) ;) (expression_statement "uStack_104 = 0;" (assignment_expression "uStack_104 = 0" identifier = number_literal) ;) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" identifier = number_literal) ;) (expression_statement "uStack_fc = 0;" (assignment_expression "uStack_fc = 0" identifier = number_literal) ;) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" identifier = number_literal) ;) (expression_statement "uStack_124 = 0x35000000;" (assignment_expression "uStack_124 = 0x35000000" identifier = number_literal) ;) (expression_statement "pcVar17 = (code *)auStack_15c;" (assignment_expression "pcVar17 = (code *)auStack_15c" identifier = (cast_expression "(code *)auStack_15c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_118 = (code *)auStack_15c;" (assignment_expression "pcStack_118 = (code *)auStack_15c" identifier = (cast_expression "(code *)auStack_15c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "iStack_16c = 0;" (assignment_expression "iStack_16c = 0" identifier = number_literal) ;) (if_statement "if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }" if (parenthesized_expression "((int)(uVar6 - 1) < 1)" ( (binary_expression "(int)(uVar6 - 1) < 1" (cast_expression "(int)(uVar6 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 - 1)" ( (binary_expression "uVar6 - 1" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }" { (expression_statement "pcVar21 = *(code **)(pcVar25 + 0xaa208);" (assignment_expression "pcVar21 = *(code **)(pcVar25 + 0xaa208)" identifier = (pointer_expression "*(code **)(pcVar25 + 0xaa208)" * (cast_expression "(code **)(pcVar25 + 0xaa208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) ))))) ;) (expression_statement "pcStack_1ac = pcVar21 + 0xd78;" (assignment_expression "pcStack_1ac = pcVar21 + 0xd78" identifier = (binary_expression "pcVar21 + 0xd78" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }" else (compound_statement "{\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }" { (expression_statement "iVar18 = *(int *)(pcVar25 + 0xaa208);" (assignment_expression "iVar18 = *(int *)(pcVar25 + 0xaa208)" identifier = (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar25 + 0xaa2a0);" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0xaa2a0)" identifier = (pointer_expression "*(int *)(pcVar25 + 0xaa2a0)" * (cast_expression "(int *)(pcVar25 + 0xaa2a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa2a0)" ( (binary_expression "pcVar25 + 0xaa2a0" identifier + number_literal) ))))) ;) (expression_statement "pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);" (assignment_expression "pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78)" identifier = (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0xd78)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0xd78" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);" (assignment_expression "pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb)" identifier = (cast_expression "(code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb)" ( (binary_expression "puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb" (binary_expression "puVar7 + (uVar6 - 2 >> 1) * 10" identifier + (binary_expression "(uVar6 - 2 >> 1) * 10" (parenthesized_expression "(uVar6 - 2 >> 1)" ( (binary_expression "uVar6 - 2 >> 1" (binary_expression "uVar6 - 2" identifier - number_literal) >> number_literal) )) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar24 = *(int *)(pcVar25 + 0xaa218);" (assignment_expression "iVar24 = *(int *)(pcVar25 + 0xaa218)" identifier = (pointer_expression "*(int *)(pcVar25 + 0xaa218)" * (cast_expression "(int *)(pcVar25 + 0xaa218)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa218)" ( (binary_expression "pcVar25 + 0xaa218" identifier + number_literal) ))))) ;) (expression_statement "pcVar4 = (code *)(puVar7 + 1);" (assignment_expression "pcVar4 = (code *)(puVar7 + 1)" identifier = (cast_expression "(code *)(puVar7 + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) )))) ;) (do_statement "do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);" do (compound_statement "{\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      }" { (expression_statement "pcVar16 = *(code **)pcVar4;" (assignment_expression "pcVar16 = *(code **)pcVar4" identifier = (pointer_expression "*(code **)pcVar4" * (cast_expression "(code **)pcVar4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }" { (expression_statement "pcVar26 = *(code **)pcVar4;" (assignment_expression "pcVar26 = *(code **)pcVar4" identifier = (pointer_expression "*(code **)pcVar4" * (cast_expression "(code **)pcVar4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar16 = pcStack_114;" (assignment_expression "pcVar16 = pcStack_114" identifier = identifier) ;) })) (expression_statement "pcStack_114 = pcVar16;" (assignment_expression "pcStack_114 = pcVar16" identifier = identifier) ;) (expression_statement "pcVar21 = pcVar4 + 0x28;" (assignment_expression "pcVar21 = pcVar4 + 0x28" identifier = (binary_expression "pcVar4 + 0x28" identifier + number_literal)) ;) (expression_statement "pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);" (assignment_expression "pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(pcVar3 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pcVar3 + 0x38) - 1)" ( (binary_expression "*(uint *)(pcVar3 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar3 + 0x38)" * (cast_expression "(uint *)(pcVar3 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x38)" ( (binary_expression "pcVar3 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*(code **)(pcVar3 + 0x38) = pcVar17;" (assignment_expression "*(code **)(pcVar3 + 0x38) = pcVar17" (pointer_expression "*(code **)(pcVar3 + 0x38)" * (cast_expression "(code **)(pcVar3 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x38)" ( (binary_expression "pcVar3 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);" (call_expression "(*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10)" (parenthesized_expression "(*(code *)(iVar24 + 0x6550))" ( (pointer_expression "*(code *)(iVar24 + 0x6550)" * (cast_expression "(code *)(iVar24 + 0x6550)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x6550)" ( (binary_expression "iVar24 + 0x6550" identifier + number_literal) )))) )) (argument_list "(pcVar3,pcVar26,pcVar17,0x10)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);" (call_expression "(*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14)" (parenthesized_expression "(*(code *)(iVar12 + -0x7cdc))" ( (pointer_expression "*(code *)(iVar12 + -0x7cdc)" * (cast_expression "(code *)(iVar12 + -0x7cdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -0x7cdc)" ( (binary_expression "iVar12 + -0x7cdc" identifier + number_literal) )))) )) (argument_list "(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14)" ( identifier , (pointer_expression "*(uint *)(pcVar4 + 0x14)" * (cast_expression "(uint *)(pcVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x14)" ( (binary_expression "pcVar4 + 0x14" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);" (call_expression "(*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0)" (parenthesized_expression "(*(code *)(iVar18 + 0x10fc))" ( (pointer_expression "*(code *)(iVar18 + 0x10fc)" * (cast_expression "(code *)(iVar18 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10fc)" ( (binary_expression "iVar18 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(uVar5,0xb,0,pcVar20,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*pcStack_1ac)(uVar5,pcVar17);" (call_expression "(*pcStack_1ac)(uVar5,pcVar17)" (parenthesized_expression "(*pcStack_1ac)" ( (pointer_expression "*pcStack_1ac" * identifier) )) (argument_list "(uVar5,pcVar17)" ( identifier , identifier ))) ;) (expression_statement "pcVar4 = pcVar21;" (assignment_expression "pcVar4 = pcVar21" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar19 != pcVar21)" ( (binary_expression "pcVar19 != pcVar21" identifier != identifier) )) ;) }))) (if_statement "if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }" if (parenthesized_expression "((uVar6 & 1) == 0)" ( (binary_expression "(uVar6 & 1) == 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar5,0x49,0,pcVar14,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }) (else_clause "else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }" else (compound_statement "{\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }" { (expression_statement "FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);" (call_expression "FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14)" identifier (argument_list "(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14)" ( identifier , (subscript_expression "puVar7[(uVar6 - 1) * 5 + 1]" identifier [ (binary_expression "(uVar6 - 1) * 5 + 1" (binary_expression "(uVar6 - 1) * 5" (parenthesized_expression "(uVar6 - 1)" ( (binary_expression "uVar6 - 1" identifier - number_literal) )) * number_literal) + number_literal) ]) , identifier ))) ;) }))) (expression_statement "(*pcStack_1ac)(uVar5,pcVar20);" (call_expression "(*pcStack_1ac)(uVar5,pcVar20)" (parenthesized_expression "(*pcStack_1ac)" ( (pointer_expression "*pcStack_1ac" * identifier) )) (argument_list "(uVar5,pcVar20)" ( identifier , identifier ))) ;) (if_statement "if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" if (parenthesized_expression "(iStack_16c != 0)" ( (binary_expression "iStack_16c != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x4854" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "pcStack_1ac = pcVar14;" (assignment_expression "pcStack_1ac = pcVar14" identifier = identifier) ;) })) (expression_statement "pcVar16 = pcVar14;" (assignment_expression "pcVar16 = pcVar14" identifier = identifier) ;) (expression_statement "pcVar22 = pcVar3;" (assignment_expression "pcVar22 = pcVar3" identifier = identifier) ;) (if_statement "if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" if (parenthesized_expression "(iStack_168 != 0)" ( (binary_expression "iStack_168 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x4854" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "pcStack_1ac = pcVar14;" (assignment_expression "pcStack_1ac = pcVar14" identifier = identifier) ;) })) }))))) (do_statement "do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  }" { (if_statement "if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }" if (parenthesized_expression "(iStack_ec == *piVar15)" ( (binary_expression "iStack_ec == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n      return pcVar14;\n    }" { (return_statement "return pcVar14;" return identifier ;) })) (expression_statement "iVar24 = iStack_ec;" (assignment_expression "iVar24 = iStack_ec" identifier = identifier) ;) (expression_statement "bVar11 = (**(code **)(pcVar25 + 0xaa440))();" (assignment_expression "bVar11 = (**(code **)(pcVar25 + 0xaa440))()" identifier = (call_expression "(**(code **)(pcVar25 + 0xaa440))()" (parenthesized_expression "(**(code **)(pcVar25 + 0xaa440))" ( (pointer_expression "**(code **)(pcVar25 + 0xaa440)" * (pointer_expression "*(code **)(pcVar25 + 0xaa440)" * (cast_expression "(code **)(pcVar25 + 0xaa440)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0xaa440)" ( (binary_expression "pcVar25 + 0xaa440" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;" (assignment_expression "*(byte *)(iVar24 + 0x28) = bVar11 & 0xc0" (pointer_expression "*(byte *)(iVar24 + 0x28)" * (cast_expression "(byte *)(iVar24 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x28)" ( (binary_expression "iVar24 + 0x28" identifier + number_literal) )))) = (binary_expression "bVar11 & 0xc0" identifier & number_literal)) ;) (expression_statement "FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);" (call_expression "FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3)" identifier (argument_list "(pcVar22,pcVar20,pcStack_1ac,0,3)" ( identifier , identifier , identifier , number_literal , number_literal ))) ;) (if_statement "if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }" if (parenthesized_expression "((int)pcVar19 < 2)" ( (binary_expression "(int)pcVar19 < 2" (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }" { (if_statement "if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }" if (parenthesized_expression "(pcVar19 == (code *)0x1)" ( (binary_expression "pcVar19 == (code *)0x1" identifier == (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }" { (labeled_statement "LAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);" statement_identifier : (expression_statement "uVar6 = *(uint *)(pcVar20 + 4);" (assignment_expression "uVar6 = *(uint *)(pcVar20 + 4)" identifier = (pointer_expression "*(uint *)(pcVar20 + 4)" * (cast_expression "(uint *)(pcVar20 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 4)" ( (binary_expression "pcVar20 + 4" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000e8104;" goto statement_identifier ;) })) }) (else_clause "else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }" else (compound_statement "{\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }" { (if_statement "if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;" if (parenthesized_expression "((*(uint *)(pcVar26 + 4) & 0x80) == 0)" ( (binary_expression "(*(uint *)(pcVar26 + 4) & 0x80) == 0" (parenthesized_expression "(*(uint *)(pcVar26 + 4) & 0x80)" ( (binary_expression "*(uint *)(pcVar26 + 4) & 0x80" (pointer_expression "*(uint *)(pcVar26 + 4)" * (cast_expression "(uint *)(pcVar26 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 4)" ( (binary_expression "pcVar26 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000e80f8;" goto statement_identifier ;)) (expression_statement "uVar6 = *(uint *)(pcVar20 + 0x18);" (assignment_expression "uVar6 = *(uint *)(pcVar20 + 0x18)" identifier = (pointer_expression "*(uint *)(pcVar20 + 0x18)" * (cast_expression "(uint *)(pcVar20 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x18)" ( (binary_expression "pcVar20 + 0x18" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);" statement_identifier : (expression_statement "in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);" (assignment_expression "in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6)" identifier = (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1f0) + 0xb8c" (pointer_expression "*(int *)(pcVar25 + 0xaa1f0)" * (cast_expression "(int *)(pcVar25 + 0xaa1f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1f0)" ( (binary_expression "pcVar25 + 0xaa1f0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar17,in_t1,pcVar19,uVar6)" ( identifier , identifier , identifier , identifier )))) ;)) }))) (expression_statement "uVar6 = *(uint *)(in_t1 + 4);" (assignment_expression "uVar6 = *(uint *)(in_t1 + 4)" identifier = (pointer_expression "*(uint *)(in_t1 + 4)" * (cast_expression "(uint *)(in_t1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t1 + 4)" ( (binary_expression "in_t1 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }" if (parenthesized_expression "((uVar6 & 0x20) == 0)" ( (binary_expression "(uVar6 & 0x20) == 0" (parenthesized_expression "(uVar6 & 0x20)" ( (binary_expression "uVar6 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }" { (expression_statement "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);" (assignment_expression "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" identifier = (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }" else (compound_statement "{\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }" { (if_statement "if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }" if (parenthesized_expression "(in_t0 == 0)" ( (binary_expression "in_t0 == 0" identifier == number_literal) )) (compound_statement "{\n        in_t0 = *(int *)(pcVar17 + 8);\n      }" { (expression_statement "in_t0 = *(int *)(pcVar17 + 8);" (assignment_expression "in_t0 = *(int *)(pcVar17 + 8)" identifier = (pointer_expression "*(int *)(pcVar17 + 8)" * (cast_expression "(int *)(pcVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 8)" ( (binary_expression "pcVar17 + 8" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);" (assignment_expression "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" identifier = (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);" (assignment_expression "uVar9 = (*pcVar17)(uVar5,0x52,0,0,0)" identifier = (call_expression "(*pcVar17)(uVar5,0x52,0,0,0)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar5,0x52,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar5,uVar9,in_t0,0xfffffffe)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "uVar6 = *(uint *)(in_t1 + 4);" (assignment_expression "uVar6 = *(uint *)(in_t1 + 4)" identifier = (pointer_expression "*(uint *)(in_t1 + 4)" * (cast_expression "(uint *)(in_t1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t1 + 4)" ( (binary_expression "in_t1 + 4" identifier + number_literal) ))))) ;) }))) (if_statement "if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }" if (parenthesized_expression "((uVar6 & 0x8000) == 0)" ( (binary_expression "(uVar6 & 0x8000) == 0" (parenthesized_expression "(uVar6 & 0x8000)" ( (binary_expression "uVar6 & 0x8000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }" { (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" identifier = number_literal) ;) (if_statement "if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }" if (parenthesized_expression "(*(uint *)(pcVar22 + 0x34) != 0)" ( (binary_expression "*(uint *)(pcVar22 + 0x34) != 0" (pointer_expression "*(uint *)(pcVar22 + 0x34)" * (cast_expression "(uint *)(pcVar22 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x34)" ( (binary_expression "pcVar22 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar9 = 0x3e;\n      }" { (expression_statement "uVar9 = 0x3e;" (assignment_expression "uVar9 = 0x3e" identifier = number_literal) ;) })) (expression_statement "uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);" (assignment_expression "uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16)" identifier = (call_expression "(*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar5,uVar9,in_t1,0xfffffff8)" ( identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }" if (parenthesized_expression "(0 < *(int *)(uVar5 + 0x6c))" ( (binary_expression "0 < *(int *)(uVar5 + 0x6c)" number_literal < (pointer_expression "*(int *)(uVar5 + 0x6c)" * (cast_expression "(int *)(uVar5 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 0x6c)" ( (binary_expression "uVar5 + 0x6c" identifier + number_literal) ))))) )) (compound_statement "{\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }" { (expression_statement "*(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;" (assignment_expression "*(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff" (pointer_expression "*(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16)" * (cast_expression "(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16)" ( (binary_expression "*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16" (binary_expression "*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68)" (binary_expression "*(int *)(uVar5 + 0x6c) * 0x18" (pointer_expression "*(int *)(uVar5 + 0x6c)" * (cast_expression "(int *)(uVar5 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 0x6c)" ( (binary_expression "uVar5 + 0x6c" identifier + number_literal) )))) * number_literal) + (pointer_expression "*(int *)(uVar5 + 0x68)" * (cast_expression "(int *)(uVar5 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 0x68)" ( (binary_expression "uVar5 + 0x68" identifier + number_literal) ))))) + number_literal) )))) = (binary_expression "(ushort)pcVar19 & 0xff" (cast_expression "(ushort)pcVar19" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal)) ;) })) }) (else_clause "else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }" else (compound_statement "{\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }" { (expression_statement "pcVar8 = *(char **)(pcVar20 + 4);" (assignment_expression "pcVar8 = *(char **)(pcVar20 + 4)" identifier = (pointer_expression "*(char **)(pcVar20 + 4)" * (cast_expression "(char **)(pcVar20 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 4)" ( (binary_expression "pcVar20 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }" if (parenthesized_expression "(*pcVar8 == -0x62)" ( (binary_expression "*pcVar8 == -0x62" (pointer_expression "*pcVar8" * identifier) == number_literal) )) (compound_statement "{\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }" { (expression_statement "(*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;" (call_expression "(*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(pcVar8 + 0x1c)" * (cast_expression "(undefined4 *)(pcVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x1c)" ( (binary_expression "pcVar8 + 0x1c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar8 + 0x20)" * (cast_expression "(undefined4 *)(pcVar8 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x20)" ( (binary_expression "pcVar8 + 0x20" identifier + number_literal) )))) , identifier ))) ;) }) (else_clause "else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }" else (compound_statement "{\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }" { (expression_statement "(*pcVar17)(uVar5,0x49,0,pcVar16,0);" (call_expression "(*pcVar17)(uVar5,0x49,0,pcVar16,0)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar5,0x49,0,pcVar16,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }))) }))) (expression_statement "pcVar14 = pcVar16;" (assignment_expression "pcVar14 = pcVar16" identifier = identifier) ;) (if_statement "if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }" if (parenthesized_expression "((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0))" ( (binary_expression "(pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)" (parenthesized_expression "(pcVar19 != (code *)0x0)" ( (binary_expression "pcVar19 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar21 == (code *)0x0)" ( (binary_expression "pcVar21 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }" { (if_statement "if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" if (parenthesized_expression "(pcVar19 == (code *)0x1)" ( (binary_expression "pcVar19 == (code *)0x1" identifier == (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x47a4" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar22,pcStack_1ac)" ( identifier , identifier ))) ;) }) (else_clause "else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" else (if_statement "if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" if (parenthesized_expression "((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19)" ( (binary_expression "(int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19" (cast_expression "(int)*(uint *)(pcVar22 + 0x1c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(pcVar22 + 0x1c)" * (cast_expression "(uint *)(pcVar22 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x1c)" ( (binary_expression "pcVar22 + 0x1c" identifier + number_literal) ))))) < (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" { (expression_statement "*(code **)(pcVar22 + 0x1c) = pcVar19;" (assignment_expression "*(code **)(pcVar22 + 0x1c) = pcVar19" (pointer_expression "*(code **)(pcVar22 + 0x1c)" * (cast_expression "(code **)(pcVar22 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x1c)" ( (binary_expression "pcVar22 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(pcVar22 + 0x20) = pcStack_1ac;" (assignment_expression "*(code **)(pcVar22 + 0x20) = pcStack_1ac" (pointer_expression "*(code **)(pcVar22 + 0x20)" * (cast_expression "(code **)(pcVar22 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x20)" ( (binary_expression "pcVar22 + 0x20" identifier + number_literal) )))) = identifier) ;) })))) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void sqlite3ExprIfTrue(Parse *pParse,Expr *pExpr,int dest,int jumpIfNull)\n\n{\n  undefined *puVar1;\n  Parse *pPVar2;\n  u8 uVar8;\n  Parse *xJump;\n  uint uVar3;\n  Parse *dest_00;\n  uint *puVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  byte bVar9;\n  int iVar10;\n  Parse *pPVar11;\n  Expr *pExpr_00;\n  char *in_t0;\n  int in_t1;\n  Parse *unaff_s0;\n  Parse *pPVar12;\n  int *piVar13;\n  Parse *unaff_s1;\n  Parse *pPVar14;\n  Parse *unaff_s2;\n  Expr *pEVar15;\n  int iVar16;\n  Parse *pPVar17;\n  Parse *pPVar18;\n  Parse *unaff_s5;\n  uint *puVar19;\n  Parse *pPVar20;\n  Parse *unaff_s6;\n  Parse *pParse_00;\n  Parse *unaff_s7;\n  Vdbe *pVVar21;\n  undefined *puVar22;\n  int iVar23;\n  Parse *pPVar24;\n  code *pcVar25;\n  Parse *pPStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  Expr EStack_15c;\n  sqlite3 *psStack_124;\n  char *pcStack_120;\n  Vdbe *pVStack_11c;\n  Expr *pEStack_118;\n  Parse *pPStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  int iStack_104;\n  int iStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  int iStack_f4;\n  int iStack_f0;\n  int iStack_ec;\n  Parse *pPStack_e8;\n  Parse *pPStack_e4;\n  Expr *pEStack_e0;\n  Parse *pPStack_dc;\n  Parse *pPStack_d8;\n  Parse *pPStack_d4;\n  Parse *pPStack_d0;\n  Parse *pPStack_cc;\n  int iStack_94;\n  Parse *pPStack_90;\n  int iStack_8c;\n  Parse *pPStack_84;\n  Parse *pPStack_80;\n  Parse *pPStack_7c;\n  undefined *puStack_78;\n  Parse *pPStack_74;\n  Parse *pPStack_70;\n  Parse *pPStack_6c;\n  Parse *pPStack_68;\n  code *pcStack_64;\n  int regFree1;\n  int regFree2;\n  Table **ppTStack_2c;\n  \n  puVar1 = PTR___stack_chk_guard_00190e24;\n  pPVar18 = (Parse *)pParse->pVdbe;\n  regFree1 = 0;\n  regFree2 = 0;\n  ppTStack_2c = *(Table ***)PTR___stack_chk_guard_00190e24;\n  pPVar11 = pParse;\n  pPVar12 = (Parse *)pExpr;\n  xJump = (Parse *)dest;\n  pPStack_80 = unaff_s1;\n  pPStack_7c = unaff_s2;\n  pPStack_70 = unaff_s5;\n  if ((pPVar18 != (Parse *)0x0) && (pPStack_80 = (Parse *)pExpr, pExpr != (Expr *)0x0)) {\n    pPVar12 = (Parse *)(uint)pExpr->op;\n    unaff_s6 = (Parse *)jumpIfNull;\n    unaff_s7 = pPVar12;\n    if (pPVar12 == (Parse *)&DAT_00000031) {\n      unaff_s0 = (Parse *)(pParse->nLabel + -1);\n      pParse->nLabel = (int)unaff_s0;\n      pPVar11 = unaff_s0;\n      if (jumpIfNull != 0) {\n        pPVar11 = (Parse *)dest;\n      }\n      sqlite3ExprCodeIN(pParse,pExpr,(int)unaff_s0,(int)pPVar11);\n      xJump = (Parse *)0x0;\n      pPVar12 = (Parse *)dest;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,0xb);\nLAB_000e6494:\n      pPVar11 = pPVar18;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pPVar18,unaff_s0);\n      jumpIfNull = (int)pPVar12;\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pPVar12;\n    if ((Parse *)&DAT_00000031 < pPVar12) {\n      if (pPVar12 < (Parse *)0x3a) {\n        if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;\n        xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);\n        goto LAB_000e6238;\n      }\n      if (pPVar12 != (Parse *)0x9c) {\n        if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;\n        bVar9 = pExpr->op2 ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pPVar2 = (Parse *)0x34;\n      if (pPVar12 == (Parse *)&DAT_0000002d) {\n        pPVar2 = (Parse *)0x35;\n      }\n      unaff_s6 = (Parse *)0x80;\n      pPVar12 = pPVar2;\nLAB_000e6334:\n      pEVar15 = pExpr->pLeft;\n      uVar8 = pEVar15->op;\n      if (uVar8 == 0xa4) {\n        uVar8 = pEVar15->op2;\n      }\n      unaff_s7 = pPVar12;\n      if (uVar8 == 0xa5) {\n        iVar23 = ((pEVar15->x).pList)->nExpr;\nLAB_000e63d8:\n        unaff_s0 = (Parse *)PTR_LAB_00190c58;\n        if (1 < iVar23) goto LAB_000e63e8;\n      }\n      else if (uVar8 == '\x7f') {\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (Parse *)(PTR_LAB_00190c58 + -0x57b8);\n      pPVar18 = (Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1);\n      sqlite3ExprCodeTemp(pParse,pExpr->pRight,&regFree2);\n      xJump = (Parse *)pExpr->pRight;\n      jumpIfNull = (int)pPVar12;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(pParse,pExpr->pLeft);\n    }\n    else {\n      if (pPVar12 == (Parse *)0x2c) {\n        unaff_s0 = (Parse *)(pParse->nLabel + -1);\n        pParse->nLabel = (int)unaff_s0;\n        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);\n        pPVar12 = (Parse *)jumpIfNull;\n        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n        goto LAB_000e6494;\n      }\n      if (pPVar12 < (Parse *)0x2d) {\n        if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (Parse *)PTR_LAB_00190bd0;\n        if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);\n        if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }\nLAB_000e6238:\n        pPVar11 = pPVar18;\n        pPVar2 = (Parse *)dest;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);\n        unaff_s6 = (Parse *)jumpIfNull;\n        jumpIfNull = (int)pPVar2;\n      }\n      else {\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }\n    }\njoined_r0x000e64ac:\n    if (regFree1 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    pPVar12 = (Parse *)regFree2;\n    pPStack_7c = pParse;\n    pPStack_70 = (Parse *)dest;\n    if (regFree2 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  if (ppTStack_2c == *(Table ***)puVar1) {\n    return;\n  }\n  pcVar25 = sqlite3ExprIfFalse;\n  puVar22 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar1;\n  pEVar15 = *(Expr **)(puVar22 + 0xaa8d4);\n  pPVar17 = (Parse *)pPVar11->pVdbe;\n  iStack_94 = 0;\n  pPStack_90 = (Parse *)0x0;\n  iStack_8c._0_1_ = pEVar15->op;\n  iStack_8c._1_1_ = pEVar15->affinity;\n  iStack_8c._2_2_ = *(undefined2 *)&pEVar15->field_0x2;\n  pPVar2 = pPVar11;\n  pPVar24 = pPVar12;\n  dest_00 = xJump;\n  pPStack_e8 = unaff_s0;\n  pPVar14 = pPStack_80;\n  pPVar20 = pPStack_70;\n  pParse_00 = unaff_s6;\n  pPStack_84 = unaff_s0;\n  pPStack_74 = pPVar18;\n  pPStack_6c = unaff_s6;\n  pPStack_68 = unaff_s7;\n  pcStack_64 = pcVar25;\n  if ((pPVar17 == (Parse *)0x0) || (pPStack_e8 = pPVar12, pPVar12 == (Parse *)0x0))\n  goto LAB_000e667c;\n  uVar3 = (uint)*(byte *)&pPVar12->db;\n  pParse_00 = (Parse *)(uVar3 ^ 1);\n  if (uVar3 == 0x31) {\n    if ((Parse *)jumpIfNull == (Parse *)0x0) {\n      pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n      pPVar11->nLabel = (int)pPVar18;\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18);\n      pPVar12 = pPVar18;\nLAB_000e6640:\n      pPVar2 = pPVar17;\n      (*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))(pPVar17,pPVar18);\n    }\n    else {\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump);\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar3 < 0x32) {\n    if (uVar3 == 0x2c) {\n      pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550);\n      sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n      sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n    }\n    else if (uVar3 < 0x2d) {\n      if (uVar3 != 0x13) {\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }\n      sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n    }\n    else {\n      if (uVar3 == 0x2d) goto LAB_000e67d0;\n      if (uVar3 != 0x30) goto LAB_000e6898;\n      dest_00 = (Parse *)&pPVar12->isMultiWrite;\n      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);\n    }\nLAB_000e6654:\n    iVar23 = *(int *)(puVar22 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pPVar2 = pPVar11;\n      (*(code *)(iVar23 + -0x4854))();\n    }\n  }\n  else {\n    pPVar18 = pParse_00;\n    if (uVar3 < 0x3a) {\n      if (0x33 < uVar3) {\nLAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;\n        uVar8 = pExpr_00->op;\n        if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }\n        if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }\n        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);\n        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);\n        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);\n        dest_00 = *(Parse **)&pPVar12->colNamesSet;\n        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);\n        if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94);\n    }\n    else {\n      if (uVar3 == 0x9c) {\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      if (uVar3 == 0xa3) {\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);\n      if (iVar23 == 0) {\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }\n      else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }\n    }\n    pPVar2 = pPVar17;\n    (*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc))(pPVar17,pParse_00,dest_00,xJump);\n    pParse_00 = pPVar18;\n    if (iStack_94 != 0) {\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pPVar24 = pPStack_90;\n  pPStack_e8 = pPVar12;\n  pPVar14 = pPVar11;\n  pPVar18 = (Parse *)jumpIfNull;\n  pPVar20 = xJump;\n  if (pPStack_90 != (Parse *)0x0) {\n    pPVar2 = pPVar11;\n    (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  iVar23._0_1_ = pEVar15->op;\n  iVar23._1_1_ = pEVar15->affinity;\n  iVar23._2_2_ = *(undefined2 *)&pEVar15->field_0x2;\n  if (iStack_8c == iVar23) {\n    return;\n  }\n  pcVar25 = *(code **)(puVar22 + 0xaa8a8);\n  (*pcVar25)();\n  piVar13 = *(int **)(pcVar25 + 0xaa46c);\n  pVVar21 = pPVar2->pVdbe;\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar13;\n  pPStack_e4 = pPVar14;\n  pEStack_e0 = pEVar15;\n  pPStack_dc = pPVar17;\n  pPStack_d8 = pPVar18;\n  pPStack_d4 = pPVar20;\n  pPStack_d0 = pParse_00;\n  pPStack_cc = unaff_s7;\n  if (pVVar21 != (Vdbe *)0x0) {\n    if (pPVar24 == (Parse *)0x0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      pPVar14 = dest_00;\n    }\n    else {\n      bVar9 = *(byte *)&pPVar24->db;\n      uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff;\n      if (uVar3 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();\n        return;\n      }\n      puVar4 = *(uint **)&pPVar24->isMultiWrite;\n      pPVar18 = (Parse *)(pPVar2->nLabel + -1);\n      uVar3 = *puVar4;\n      pPVar2->nLabel = (int)pPVar18;\n      iVar23 = pPVar24->rc;\n      if (iVar23 == 0) {\n        pPVar24 = (Parse *)0x0;\n        pEVar15 = (Expr *)(uint)bVar9;\n      }\n      else {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }\n      iStack_16c = 0;\n      if ((int)(uVar3 - 1) < 1) {\n        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);\n        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;\n      }\n      else {\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }\n      if ((uVar3 & 1) == 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      }\n      else {\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }\n      (*(code *)pPStack_1ac)(pVVar21,pPVar18);\n      if (iStack_16c != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n      pPVar14 = dest_00;\n      pParse_00 = pPVar2;\n      if (iStack_168 != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n    }\n  }\n  do {\n    if (iStack_ec == *piVar13) {\n      return;\n    }\n    iVar23 = iStack_ec;\n    bVar9 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar23 + 0x28) = bVar9 & 0xc0;\n    sqlite3ExprCodeExprList(pParse_00,(ExprList *)pPVar18,(int)pPStack_1ac,0,'\x03');\n    if ((int)pPVar17 < 2) {\n      if (pPVar17 == (Parse *)0x1) {\nLAB_000e80f8:\n        pcVar6 = pPVar18->zErrMsg;\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if (((uint)pPVar24->zErrMsg & 0x80) == 0) goto LAB_000e80f8;\n      pcVar6 = *(char **)&pPVar18->disableLookaside;\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);\n    }\n    uVar3 = *(uint *)(in_t1 + 4);\n    if ((uVar3 & 0x20) == 0) {\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == (char *)0x0) {\n        in_t0 = (pEVar15->u).zToken;\n      }\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe);\n      uVar3 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar3 & 0x8000) == 0) {\n      uVar7 = 0x3f;\n      if (pParse_00->iSelfTab != 0) {\n        uVar7 = 0x3e;\n      }\n      uVar7 = (*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t1,0xfffffff8);\n      if (0 < pVVar21->nOp) {\n        pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;\n      }\n    }\n    else {\n      pcVar6 = pPVar18->zErrMsg;\n      if (*pcVar6 == -0x62) {\n        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);\n      }\n      else {\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }\n    }\n    if ((pPVar17 != (Parse *)0x0) && (pPVar20 == (Parse *)0x0)) {\n      if (pPVar17 == (Parse *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);\n      }\n      else if (pParse_00->nRangeReg < (int)pPVar17) {\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "void sqlite3ExprIfTrue(Parse *pParse,Expr *pExpr,int dest,int jumpIfNull)\n\n{\n  undefined *puVar1;\n  Parse *pPVar2;\n  u8 uVar8;\n  Parse *xJump;\n  uint uVar3;\n  Parse *dest_00;\n  uint *puVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  byte bVar9;\n  int iVar10;\n  Parse *pPVar11;\n  Expr *pExpr_00;\n  char *in_t0;\n  int in_t1;\n  Parse *unaff_s0;\n  Parse *pPVar12;\n  int *piVar13;\n  Parse *unaff_s1;\n  Parse *pPVar14;\n  Parse *unaff_s2;\n  Expr *pEVar15;\n  int iVar16;\n  Parse *pPVar17;\n  Parse *pPVar18;\n  Parse *unaff_s5;\n  uint *puVar19;\n  Parse *pPVar20;\n  Parse *unaff_s6;\n  Parse *pParse_00;\n  Parse *unaff_s7;\n  Vdbe *pVVar21;\n  undefined *puVar22;\n  int iVar23;\n  Parse *pPVar24;\n  code *pcVar25;\n  Parse *pPStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  Expr EStack_15c;\n  sqlite3 *psStack_124;\n  char *pcStack_120;\n  Vdbe *pVStack_11c;\n  Expr *pEStack_118;\n  Parse *pPStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  int iStack_104;\n  int iStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  int iStack_f4;\n  int iStack_f0;\n  int iStack_ec;\n  Parse *pPStack_e8;\n  Parse *pPStack_e4;\n  Expr *pEStack_e0;\n  Parse *pPStack_dc;\n  Parse *pPStack_d8;\n  Parse *pPStack_d4;\n  Parse *pPStack_d0;\n  Parse *pPStack_cc;\n  int iStack_94;\n  Parse *pPStack_90;\n  int iStack_8c;\n  Parse *pPStack_84;\n  Parse *pPStack_80;\n  Parse *pPStack_7c;\n  undefined *puStack_78;\n  Parse *pPStack_74;\n  Parse *pPStack_70;\n  Parse *pPStack_6c;\n  Parse *pPStack_68;\n  code *pcStack_64;\n  int regFree1;\n  int regFree2;\n  Table **ppTStack_2c;\n  \n  puVar1 = PTR___stack_chk_guard_00190e24;\n  pPVar18 = (Parse *)pParse->pVdbe;\n  regFree1 = 0;\n  regFree2 = 0;\n  ppTStack_2c = *(Table ***)PTR___stack_chk_guard_00190e24;\n  pPVar11 = pParse;\n  pPVar12 = (Parse *)pExpr;\n  xJump = (Parse *)dest;\n  pPStack_80 = unaff_s1;\n  pPStack_7c = unaff_s2;\n  pPStack_70 = unaff_s5;\n  if ((pPVar18 != (Parse *)0x0) && (pPStack_80 = (Parse *)pExpr, pExpr != (Expr *)0x0)) {\n    pPVar12 = (Parse *)(uint)pExpr->op;\n    unaff_s6 = (Parse *)jumpIfNull;\n    unaff_s7 = pPVar12;\n    if (pPVar12 == (Parse *)&DAT_00000031) {\n      unaff_s0 = (Parse *)(pParse->nLabel + -1);\n      pParse->nLabel = (int)unaff_s0;\n      pPVar11 = unaff_s0;\n      if (jumpIfNull != 0) {\n        pPVar11 = (Parse *)dest;\n      }\n      sqlite3ExprCodeIN(pParse,pExpr,(int)unaff_s0,(int)pPVar11);\n      xJump = (Parse *)0x0;\n      pPVar12 = (Parse *)dest;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,0xb);\nLAB_000e6494:\n      pPVar11 = pPVar18;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pPVar18,unaff_s0);\n      jumpIfNull = (int)pPVar12;\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pPVar12;\n    if ((Parse *)&DAT_00000031 < pPVar12) {\n      if (pPVar12 < (Parse *)0x3a) {\n        if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;\n        xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);\n        goto LAB_000e6238;\n      }\n      if (pPVar12 != (Parse *)0x9c) {\n        if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;\n        bVar9 = pExpr->op2 ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pPVar2 = (Parse *)0x34;\n      if (pPVar12 == (Parse *)&DAT_0000002d) {\n        pPVar2 = (Parse *)0x35;\n      }\n      unaff_s6 = (Parse *)0x80;\n      pPVar12 = pPVar2;\nLAB_000e6334:\n      pEVar15 = pExpr->pLeft;\n      uVar8 = pEVar15->op;\n      if (uVar8 == 0xa4) {\n        uVar8 = pEVar15->op2;\n      }\n      unaff_s7 = pPVar12;\n      if (uVar8 == 0xa5) {\n        iVar23 = ((pEVar15->x).pList)->nExpr;\nLAB_000e63d8:\n        unaff_s0 = (Parse *)PTR_LAB_00190c58;\n        if (1 < iVar23) goto LAB_000e63e8;\n      }\n      else if (uVar8 == '\x7f') {\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (Parse *)(PTR_LAB_00190c58 + -0x57b8);\n      pPVar18 = (Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1);\n      sqlite3ExprCodeTemp(pParse,pExpr->pRight,&regFree2);\n      xJump = (Parse *)pExpr->pRight;\n      jumpIfNull = (int)pPVar12;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(pParse,pExpr->pLeft);\n    }\n    else {\n      if (pPVar12 == (Parse *)0x2c) {\n        unaff_s0 = (Parse *)(pParse->nLabel + -1);\n        pParse->nLabel = (int)unaff_s0;\n        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);\n        pPVar12 = (Parse *)jumpIfNull;\n        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n        goto LAB_000e6494;\n      }\n      if (pPVar12 < (Parse *)0x2d) {\n        if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (Parse *)PTR_LAB_00190bd0;\n        if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);\n        if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }\nLAB_000e6238:\n        pPVar11 = pPVar18;\n        pPVar2 = (Parse *)dest;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);\n        unaff_s6 = (Parse *)jumpIfNull;\n        jumpIfNull = (int)pPVar2;\n      }\n      else {\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }\n    }\njoined_r0x000e64ac:\n    if (regFree1 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    pPVar12 = (Parse *)regFree2;\n    pPStack_7c = pParse;\n    pPStack_70 = (Parse *)dest;\n    if (regFree2 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  if (ppTStack_2c == *(Table ***)puVar1) {\n    return;\n  }\n  pcVar25 = sqlite3ExprIfFalse;\n  puVar22 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar1;\n  pEVar15 = *(Expr **)(puVar22 + 0xaa8d4);\n  pPVar17 = (Parse *)pPVar11->pVdbe;\n  iStack_94 = 0;\n  pPStack_90 = (Parse *)0x0;\n  iStack_8c._0_1_ = pEVar15->op;\n  iStack_8c._1_1_ = pEVar15->affinity;\n  iStack_8c._2_2_ = *(undefined2 *)&pEVar15->field_0x2;\n  pPVar2 = pPVar11;\n  pPVar24 = pPVar12;\n  dest_00 = xJump;\n  pPStack_e8 = unaff_s0;\n  pPVar14 = pPStack_80;\n  pPVar20 = pPStack_70;\n  pParse_00 = unaff_s6;\n  pPStack_84 = unaff_s0;\n  pPStack_74 = pPVar18;\n  pPStack_6c = unaff_s6;\n  pPStack_68 = unaff_s7;\n  pcStack_64 = pcVar25;\n  if ((pPVar17 == (Parse *)0x0) || (pPStack_e8 = pPVar12, pPVar12 == (Parse *)0x0))\n  goto LAB_000e667c;\n  uVar3 = (uint)*(byte *)&pPVar12->db;\n  pParse_00 = (Parse *)(uVar3 ^ 1);\n  if (uVar3 == 0x31) {\n    if ((Parse *)jumpIfNull == (Parse *)0x0) {\n      pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n      pPVar11->nLabel = (int)pPVar18;\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18);\n      pPVar12 = pPVar18;\nLAB_000e6640:\n      pPVar2 = pPVar17;\n      (*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))(pPVar17,pPVar18);\n    }\n    else {\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump);\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar3 < 0x32) {\n    if (uVar3 == 0x2c) {\n      pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550);\n      sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n      sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n    }\n    else if (uVar3 < 0x2d) {\n      if (uVar3 != 0x13) {\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }\n      sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n    }\n    else {\n      if (uVar3 == 0x2d) goto LAB_000e67d0;\n      if (uVar3 != 0x30) goto LAB_000e6898;\n      dest_00 = (Parse *)&pPVar12->isMultiWrite;\n      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);\n    }\nLAB_000e6654:\n    iVar23 = *(int *)(puVar22 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pPVar2 = pPVar11;\n      (*(code *)(iVar23 + -0x4854))();\n    }\n  }\n  else {\n    pPVar18 = pParse_00;\n    if (uVar3 < 0x3a) {\n      if (0x33 < uVar3) {\nLAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;\n        uVar8 = pExpr_00->op;\n        if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }\n        if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }\n        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);\n        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);\n        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);\n        dest_00 = *(Parse **)&pPVar12->colNamesSet;\n        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);\n        if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94);\n    }\n    else {\n      if (uVar3 == 0x9c) {\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      if (uVar3 == 0xa3) {\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);\n      if (iVar23 == 0) {\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }\n      else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }\n    }\n    pPVar2 = pPVar17;\n    (*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc))(pPVar17,pParse_00,dest_00,xJump);\n    pParse_00 = pPVar18;\n    if (iStack_94 != 0) {\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pPVar24 = pPStack_90;\n  pPStack_e8 = pPVar12;\n  pPVar14 = pPVar11;\n  pPVar18 = (Parse *)jumpIfNull;\n  pPVar20 = xJump;\n  if (pPStack_90 != (Parse *)0x0) {\n    pPVar2 = pPVar11;\n    (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  iVar23._0_1_ = pEVar15->op;\n  iVar23._1_1_ = pEVar15->affinity;\n  iVar23._2_2_ = *(undefined2 *)&pEVar15->field_0x2;\n  if (iStack_8c == iVar23) {\n    return;\n  }\n  pcVar25 = *(code **)(puVar22 + 0xaa8a8);\n  (*pcVar25)();\n  piVar13 = *(int **)(pcVar25 + 0xaa46c);\n  pVVar21 = pPVar2->pVdbe;\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar13;\n  pPStack_e4 = pPVar14;\n  pEStack_e0 = pEVar15;\n  pPStack_dc = pPVar17;\n  pPStack_d8 = pPVar18;\n  pPStack_d4 = pPVar20;\n  pPStack_d0 = pParse_00;\n  pPStack_cc = unaff_s7;\n  if (pVVar21 != (Vdbe *)0x0) {\n    if (pPVar24 == (Parse *)0x0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      pPVar14 = dest_00;\n    }\n    else {\n      bVar9 = *(byte *)&pPVar24->db;\n      uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff;\n      if (uVar3 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();\n        return;\n      }\n      puVar4 = *(uint **)&pPVar24->isMultiWrite;\n      pPVar18 = (Parse *)(pPVar2->nLabel + -1);\n      uVar3 = *puVar4;\n      pPVar2->nLabel = (int)pPVar18;\n      iVar23 = pPVar24->rc;\n      if (iVar23 == 0) {\n        pPVar24 = (Parse *)0x0;\n        pEVar15 = (Expr *)(uint)bVar9;\n      }\n      else {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }\n      iStack_16c = 0;\n      if ((int)(uVar3 - 1) < 1) {\n        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);\n        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;\n      }\n      else {\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }\n      if ((uVar3 & 1) == 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      }\n      else {\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }\n      (*(code *)pPStack_1ac)(pVVar21,pPVar18);\n      if (iStack_16c != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n      pPVar14 = dest_00;\n      pParse_00 = pPVar2;\n      if (iStack_168 != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n    }\n  }\n  do {\n    if (iStack_ec == *piVar13) {\n      return;\n    }\n    iVar23 = iStack_ec;\n    bVar9 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar23 + 0x28) = bVar9 & 0xc0;\n    sqlite3ExprCodeExprList(pParse_00,(ExprList *)pPVar18,(int)pPStack_1ac,0,'\x03');\n    if ((int)pPVar17 < 2) {\n      if (pPVar17 == (Parse *)0x1) {\nLAB_000e80f8:\n        pcVar6 = pPVar18->zErrMsg;\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if (((uint)pPVar24->zErrMsg & 0x80) == 0) goto LAB_000e80f8;\n      pcVar6 = *(char **)&pPVar18->disableLookaside;\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);\n    }\n    uVar3 = *(uint *)(in_t1 + 4);\n    if ((uVar3 & 0x20) == 0) {\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == (char *)0x0) {\n        in_t0 = (pEVar15->u).zToken;\n      }\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe);\n      uVar3 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar3 & 0x8000) == 0) {\n      uVar7 = 0x3f;\n      if (pParse_00->iSelfTab != 0) {\n        uVar7 = 0x3e;\n      }\n      uVar7 = (*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t1,0xfffffff8);\n      if (0 < pVVar21->nOp) {\n        pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;\n      }\n    }\n    else {\n      pcVar6 = pPVar18->zErrMsg;\n      if (*pcVar6 == -0x62) {\n        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);\n      }\n      else {\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }\n    }\n    if ((pPVar17 != (Parse *)0x0) && (pPVar20 == (Parse *)0x0)) {\n      if (pPVar17 == (Parse *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);\n      }\n      else if (pParse_00->nRangeReg < (int)pPVar17) {\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }\n    }\n  } while( true );\n}" primitive_type (function_declarator "sqlite3ExprIfTrue(Parse *pParse,Expr *pExpr,int dest,int jumpIfNull)" identifier (parameter_list "(Parse *pParse,Expr *pExpr,int dest,int jumpIfNull)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "Expr *pExpr" type_identifier (pointer_declarator "*pExpr" * identifier)) , (parameter_declaration "int dest" primitive_type identifier) , (parameter_declaration "int jumpIfNull" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  Parse *pPVar2;\n  u8 uVar8;\n  Parse *xJump;\n  uint uVar3;\n  Parse *dest_00;\n  uint *puVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  byte bVar9;\n  int iVar10;\n  Parse *pPVar11;\n  Expr *pExpr_00;\n  char *in_t0;\n  int in_t1;\n  Parse *unaff_s0;\n  Parse *pPVar12;\n  int *piVar13;\n  Parse *unaff_s1;\n  Parse *pPVar14;\n  Parse *unaff_s2;\n  Expr *pEVar15;\n  int iVar16;\n  Parse *pPVar17;\n  Parse *pPVar18;\n  Parse *unaff_s5;\n  uint *puVar19;\n  Parse *pPVar20;\n  Parse *unaff_s6;\n  Parse *pParse_00;\n  Parse *unaff_s7;\n  Vdbe *pVVar21;\n  undefined *puVar22;\n  int iVar23;\n  Parse *pPVar24;\n  code *pcVar25;\n  Parse *pPStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  Expr EStack_15c;\n  sqlite3 *psStack_124;\n  char *pcStack_120;\n  Vdbe *pVStack_11c;\n  Expr *pEStack_118;\n  Parse *pPStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  int iStack_108;\n  int iStack_104;\n  int iStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  int iStack_f4;\n  int iStack_f0;\n  int iStack_ec;\n  Parse *pPStack_e8;\n  Parse *pPStack_e4;\n  Expr *pEStack_e0;\n  Parse *pPStack_dc;\n  Parse *pPStack_d8;\n  Parse *pPStack_d4;\n  Parse *pPStack_d0;\n  Parse *pPStack_cc;\n  int iStack_94;\n  Parse *pPStack_90;\n  int iStack_8c;\n  Parse *pPStack_84;\n  Parse *pPStack_80;\n  Parse *pPStack_7c;\n  undefined *puStack_78;\n  Parse *pPStack_74;\n  Parse *pPStack_70;\n  Parse *pPStack_6c;\n  Parse *pPStack_68;\n  code *pcStack_64;\n  int regFree1;\n  int regFree2;\n  Table **ppTStack_2c;\n  \n  puVar1 = PTR___stack_chk_guard_00190e24;\n  pPVar18 = (Parse *)pParse->pVdbe;\n  regFree1 = 0;\n  regFree2 = 0;\n  ppTStack_2c = *(Table ***)PTR___stack_chk_guard_00190e24;\n  pPVar11 = pParse;\n  pPVar12 = (Parse *)pExpr;\n  xJump = (Parse *)dest;\n  pPStack_80 = unaff_s1;\n  pPStack_7c = unaff_s2;\n  pPStack_70 = unaff_s5;\n  if ((pPVar18 != (Parse *)0x0) && (pPStack_80 = (Parse *)pExpr, pExpr != (Expr *)0x0)) {\n    pPVar12 = (Parse *)(uint)pExpr->op;\n    unaff_s6 = (Parse *)jumpIfNull;\n    unaff_s7 = pPVar12;\n    if (pPVar12 == (Parse *)&DAT_00000031) {\n      unaff_s0 = (Parse *)(pParse->nLabel + -1);\n      pParse->nLabel = (int)unaff_s0;\n      pPVar11 = unaff_s0;\n      if (jumpIfNull != 0) {\n        pPVar11 = (Parse *)dest;\n      }\n      sqlite3ExprCodeIN(pParse,pExpr,(int)unaff_s0,(int)pPVar11);\n      xJump = (Parse *)0x0;\n      pPVar12 = (Parse *)dest;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,0xb);\nLAB_000e6494:\n      pPVar11 = pPVar18;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pPVar18,unaff_s0);\n      jumpIfNull = (int)pPVar12;\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pPVar12;\n    if ((Parse *)&DAT_00000031 < pPVar12) {\n      if (pPVar12 < (Parse *)0x3a) {\n        if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;\n        xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);\n        goto LAB_000e6238;\n      }\n      if (pPVar12 != (Parse *)0x9c) {\n        if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;\n        bVar9 = pExpr->op2 ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pPVar2 = (Parse *)0x34;\n      if (pPVar12 == (Parse *)&DAT_0000002d) {\n        pPVar2 = (Parse *)0x35;\n      }\n      unaff_s6 = (Parse *)0x80;\n      pPVar12 = pPVar2;\nLAB_000e6334:\n      pEVar15 = pExpr->pLeft;\n      uVar8 = pEVar15->op;\n      if (uVar8 == 0xa4) {\n        uVar8 = pEVar15->op2;\n      }\n      unaff_s7 = pPVar12;\n      if (uVar8 == 0xa5) {\n        iVar23 = ((pEVar15->x).pList)->nExpr;\nLAB_000e63d8:\n        unaff_s0 = (Parse *)PTR_LAB_00190c58;\n        if (1 < iVar23) goto LAB_000e63e8;\n      }\n      else if (uVar8 == '\x7f') {\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (Parse *)(PTR_LAB_00190c58 + -0x57b8);\n      pPVar18 = (Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1);\n      sqlite3ExprCodeTemp(pParse,pExpr->pRight,&regFree2);\n      xJump = (Parse *)pExpr->pRight;\n      jumpIfNull = (int)pPVar12;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(pParse,pExpr->pLeft);\n    }\n    else {\n      if (pPVar12 == (Parse *)0x2c) {\n        unaff_s0 = (Parse *)(pParse->nLabel + -1);\n        pParse->nLabel = (int)unaff_s0;\n        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);\n        pPVar12 = (Parse *)jumpIfNull;\n        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n        goto LAB_000e6494;\n      }\n      if (pPVar12 < (Parse *)0x2d) {\n        if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (Parse *)PTR_LAB_00190bd0;\n        if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);\n        if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }\nLAB_000e6238:\n        pPVar11 = pPVar18;\n        pPVar2 = (Parse *)dest;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);\n        unaff_s6 = (Parse *)jumpIfNull;\n        jumpIfNull = (int)pPVar2;\n      }\n      else {\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }\n    }\njoined_r0x000e64ac:\n    if (regFree1 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    pPVar12 = (Parse *)regFree2;\n    pPStack_7c = pParse;\n    pPStack_70 = (Parse *)dest;\n    if (regFree2 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  if (ppTStack_2c == *(Table ***)puVar1) {\n    return;\n  }\n  pcVar25 = sqlite3ExprIfFalse;\n  puVar22 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar1;\n  pEVar15 = *(Expr **)(puVar22 + 0xaa8d4);\n  pPVar17 = (Parse *)pPVar11->pVdbe;\n  iStack_94 = 0;\n  pPStack_90 = (Parse *)0x0;\n  iStack_8c._0_1_ = pEVar15->op;\n  iStack_8c._1_1_ = pEVar15->affinity;\n  iStack_8c._2_2_ = *(undefined2 *)&pEVar15->field_0x2;\n  pPVar2 = pPVar11;\n  pPVar24 = pPVar12;\n  dest_00 = xJump;\n  pPStack_e8 = unaff_s0;\n  pPVar14 = pPStack_80;\n  pPVar20 = pPStack_70;\n  pParse_00 = unaff_s6;\n  pPStack_84 = unaff_s0;\n  pPStack_74 = pPVar18;\n  pPStack_6c = unaff_s6;\n  pPStack_68 = unaff_s7;\n  pcStack_64 = pcVar25;\n  if ((pPVar17 == (Parse *)0x0) || (pPStack_e8 = pPVar12, pPVar12 == (Parse *)0x0))\n  goto LAB_000e667c;\n  uVar3 = (uint)*(byte *)&pPVar12->db;\n  pParse_00 = (Parse *)(uVar3 ^ 1);\n  if (uVar3 == 0x31) {\n    if ((Parse *)jumpIfNull == (Parse *)0x0) {\n      pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n      pPVar11->nLabel = (int)pPVar18;\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18);\n      pPVar12 = pPVar18;\nLAB_000e6640:\n      pPVar2 = pPVar17;\n      (*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))(pPVar17,pPVar18);\n    }\n    else {\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump);\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar3 < 0x32) {\n    if (uVar3 == 0x2c) {\n      pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550);\n      sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n      sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n    }\n    else if (uVar3 < 0x2d) {\n      if (uVar3 != 0x13) {\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }\n      sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n    }\n    else {\n      if (uVar3 == 0x2d) goto LAB_000e67d0;\n      if (uVar3 != 0x30) goto LAB_000e6898;\n      dest_00 = (Parse *)&pPVar12->isMultiWrite;\n      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);\n    }\nLAB_000e6654:\n    iVar23 = *(int *)(puVar22 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pPVar2 = pPVar11;\n      (*(code *)(iVar23 + -0x4854))();\n    }\n  }\n  else {\n    pPVar18 = pParse_00;\n    if (uVar3 < 0x3a) {\n      if (0x33 < uVar3) {\nLAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;\n        uVar8 = pExpr_00->op;\n        if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }\n        if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }\n        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);\n        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);\n        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);\n        dest_00 = *(Parse **)&pPVar12->colNamesSet;\n        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);\n        if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94);\n    }\n    else {\n      if (uVar3 == 0x9c) {\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      if (uVar3 == 0xa3) {\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);\n      if (iVar23 == 0) {\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }\n      else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }\n    }\n    pPVar2 = pPVar17;\n    (*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc))(pPVar17,pParse_00,dest_00,xJump);\n    pParse_00 = pPVar18;\n    if (iStack_94 != 0) {\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pPVar24 = pPStack_90;\n  pPStack_e8 = pPVar12;\n  pPVar14 = pPVar11;\n  pPVar18 = (Parse *)jumpIfNull;\n  pPVar20 = xJump;\n  if (pPStack_90 != (Parse *)0x0) {\n    pPVar2 = pPVar11;\n    (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  iVar23._0_1_ = pEVar15->op;\n  iVar23._1_1_ = pEVar15->affinity;\n  iVar23._2_2_ = *(undefined2 *)&pEVar15->field_0x2;\n  if (iStack_8c == iVar23) {\n    return;\n  }\n  pcVar25 = *(code **)(puVar22 + 0xaa8a8);\n  (*pcVar25)();\n  piVar13 = *(int **)(pcVar25 + 0xaa46c);\n  pVVar21 = pPVar2->pVdbe;\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar13;\n  pPStack_e4 = pPVar14;\n  pEStack_e0 = pEVar15;\n  pPStack_dc = pPVar17;\n  pPStack_d8 = pPVar18;\n  pPStack_d4 = pPVar20;\n  pPStack_d0 = pParse_00;\n  pPStack_cc = unaff_s7;\n  if (pVVar21 != (Vdbe *)0x0) {\n    if (pPVar24 == (Parse *)0x0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      pPVar14 = dest_00;\n    }\n    else {\n      bVar9 = *(byte *)&pPVar24->db;\n      uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff;\n      if (uVar3 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();\n        return;\n      }\n      puVar4 = *(uint **)&pPVar24->isMultiWrite;\n      pPVar18 = (Parse *)(pPVar2->nLabel + -1);\n      uVar3 = *puVar4;\n      pPVar2->nLabel = (int)pPVar18;\n      iVar23 = pPVar24->rc;\n      if (iVar23 == 0) {\n        pPVar24 = (Parse *)0x0;\n        pEVar15 = (Expr *)(uint)bVar9;\n      }\n      else {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }\n      iStack_16c = 0;\n      if ((int)(uVar3 - 1) < 1) {\n        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);\n        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;\n      }\n      else {\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }\n      if ((uVar3 & 1) == 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      }\n      else {\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }\n      (*(code *)pPStack_1ac)(pVVar21,pPVar18);\n      if (iStack_16c != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n      pPVar14 = dest_00;\n      pParse_00 = pPVar2;\n      if (iStack_168 != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n    }\n  }\n  do {\n    if (iStack_ec == *piVar13) {\n      return;\n    }\n    iVar23 = iStack_ec;\n    bVar9 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar23 + 0x28) = bVar9 & 0xc0;\n    sqlite3ExprCodeExprList(pParse_00,(ExprList *)pPVar18,(int)pPStack_1ac,0,'\x03');\n    if ((int)pPVar17 < 2) {\n      if (pPVar17 == (Parse *)0x1) {\nLAB_000e80f8:\n        pcVar6 = pPVar18->zErrMsg;\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if (((uint)pPVar24->zErrMsg & 0x80) == 0) goto LAB_000e80f8;\n      pcVar6 = *(char **)&pPVar18->disableLookaside;\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);\n    }\n    uVar3 = *(uint *)(in_t1 + 4);\n    if ((uVar3 & 0x20) == 0) {\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == (char *)0x0) {\n        in_t0 = (pEVar15->u).zToken;\n      }\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe);\n      uVar3 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar3 & 0x8000) == 0) {\n      uVar7 = 0x3f;\n      if (pParse_00->iSelfTab != 0) {\n        uVar7 = 0x3e;\n      }\n      uVar7 = (*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t1,0xfffffff8);\n      if (0 < pVVar21->nOp) {\n        pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;\n      }\n    }\n    else {\n      pcVar6 = pPVar18->zErrMsg;\n      if (*pcVar6 == -0x62) {\n        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);\n      }\n      else {\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }\n    }\n    if ((pPVar17 != (Parse *)0x0) && (pPVar20 == (Parse *)0x0)) {\n      if (pPVar17 == (Parse *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);\n      }\n      else if (pParse_00->nRangeReg < (int)pPVar17) {\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }\n    }\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "Parse *pPVar2;" type_identifier (pointer_declarator "*pPVar2" * identifier) ;) (declaration "u8 uVar8;" type_identifier identifier ;) (declaration "Parse *xJump;" type_identifier (pointer_declarator "*xJump" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "Parse *dest_00;" type_identifier (pointer_declarator "*dest_00" * identifier) ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "Parse *pPVar11;" type_identifier (pointer_declarator "*pPVar11" * identifier) ;) (declaration "Expr *pExpr_00;" type_identifier (pointer_declarator "*pExpr_00" * identifier) ;) (declaration "char *in_t0;" primitive_type (pointer_declarator "*in_t0" * identifier) ;) (declaration "int in_t1;" primitive_type identifier ;) (declaration "Parse *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "Parse *pPVar12;" type_identifier (pointer_declarator "*pPVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "Parse *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "Parse *pPVar14;" type_identifier (pointer_declarator "*pPVar14" * identifier) ;) (declaration "Parse *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "Expr *pEVar15;" type_identifier (pointer_declarator "*pEVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "Parse *pPVar17;" type_identifier (pointer_declarator "*pPVar17" * identifier) ;) (declaration "Parse *pPVar18;" type_identifier (pointer_declarator "*pPVar18" * identifier) ;) (declaration "Parse *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "Parse *pPVar20;" type_identifier (pointer_declarator "*pPVar20" * identifier) ;) (declaration "Parse *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "Parse *pParse_00;" type_identifier (pointer_declarator "*pParse_00" * identifier) ;) (declaration "Parse *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "Vdbe *pVVar21;" type_identifier (pointer_declarator "*pVVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "Parse *pPVar24;" type_identifier (pointer_declarator "*pPVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "Parse *pPStack_1ac;" type_identifier (pointer_declarator "*pPStack_1ac" * identifier) ;) (declaration "int iStack_16c;" primitive_type identifier ;) (declaration "int iStack_168;" primitive_type identifier ;) (declaration "Expr EStack_15c;" type_identifier identifier ;) (declaration "sqlite3 *psStack_124;" type_identifier (pointer_declarator "*psStack_124" * identifier) ;) (declaration "char *pcStack_120;" primitive_type (pointer_declarator "*pcStack_120" * identifier) ;) (declaration "Vdbe *pVStack_11c;" type_identifier (pointer_declarator "*pVStack_11c" * identifier) ;) (declaration "Expr *pEStack_118;" type_identifier (pointer_declarator "*pEStack_118" * identifier) ;) (declaration "Parse *pPStack_114;" type_identifier (pointer_declarator "*pPStack_114" * identifier) ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "int iStack_108;" primitive_type identifier ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "int iStack_100;" primitive_type identifier ;) (declaration "int iStack_fc;" primitive_type identifier ;) (declaration "int iStack_f8;" primitive_type identifier ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "int iStack_f0;" primitive_type identifier ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "Parse *pPStack_e8;" type_identifier (pointer_declarator "*pPStack_e8" * identifier) ;) (declaration "Parse *pPStack_e4;" type_identifier (pointer_declarator "*pPStack_e4" * identifier) ;) (declaration "Expr *pEStack_e0;" type_identifier (pointer_declarator "*pEStack_e0" * identifier) ;) (declaration "Parse *pPStack_dc;" type_identifier (pointer_declarator "*pPStack_dc" * identifier) ;) (declaration "Parse *pPStack_d8;" type_identifier (pointer_declarator "*pPStack_d8" * identifier) ;) (declaration "Parse *pPStack_d4;" type_identifier (pointer_declarator "*pPStack_d4" * identifier) ;) (declaration "Parse *pPStack_d0;" type_identifier (pointer_declarator "*pPStack_d0" * identifier) ;) (declaration "Parse *pPStack_cc;" type_identifier (pointer_declarator "*pPStack_cc" * identifier) ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "Parse *pPStack_90;" type_identifier (pointer_declarator "*pPStack_90" * identifier) ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "Parse *pPStack_84;" type_identifier (pointer_declarator "*pPStack_84" * identifier) ;) (declaration "Parse *pPStack_80;" type_identifier (pointer_declarator "*pPStack_80" * identifier) ;) (declaration "Parse *pPStack_7c;" type_identifier (pointer_declarator "*pPStack_7c" * identifier) ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "Parse *pPStack_74;" type_identifier (pointer_declarator "*pPStack_74" * identifier) ;) (declaration "Parse *pPStack_70;" type_identifier (pointer_declarator "*pPStack_70" * identifier) ;) (declaration "Parse *pPStack_6c;" type_identifier (pointer_declarator "*pPStack_6c" * identifier) ;) (declaration "Parse *pPStack_68;" type_identifier (pointer_declarator "*pPStack_68" * identifier) ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "int regFree1;" primitive_type identifier ;) (declaration "int regFree2;" primitive_type identifier ;) (declaration "Table **ppTStack_2c;" type_identifier (pointer_declarator "**ppTStack_2c" * (pointer_declarator "*ppTStack_2c" * identifier)) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar1 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "pPVar18 = (Parse *)pParse->pVdbe;" (assignment_expression "pPVar18 = (Parse *)pParse->pVdbe" identifier = (cast_expression "(Parse *)pParse->pVdbe" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->pVdbe" identifier -> field_identifier))) ;) (expression_statement "regFree1 = 0;" (assignment_expression "regFree1 = 0" identifier = number_literal) ;) (expression_statement "regFree2 = 0;" (assignment_expression "regFree2 = 0" identifier = number_literal) ;) (expression_statement "ppTStack_2c = *(Table ***)PTR___stack_chk_guard_00190e24;" (assignment_expression "ppTStack_2c = *(Table ***)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(Table ***)PTR___stack_chk_guard_00190e24" * (cast_expression "(Table ***)PTR___stack_chk_guard_00190e24" ( (type_descriptor "Table ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "pPVar11 = pParse;" (assignment_expression "pPVar11 = pParse" identifier = identifier) ;) (expression_statement "pPVar12 = (Parse *)pExpr;" (assignment_expression "pPVar12 = (Parse *)pExpr" identifier = (cast_expression "(Parse *)pExpr" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "xJump = (Parse *)dest;" (assignment_expression "xJump = (Parse *)dest" identifier = (cast_expression "(Parse *)dest" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pPStack_80 = unaff_s1;" (assignment_expression "pPStack_80 = unaff_s1" identifier = identifier) ;) (expression_statement "pPStack_7c = unaff_s2;" (assignment_expression "pPStack_7c = unaff_s2" identifier = identifier) ;) (expression_statement "pPStack_70 = unaff_s5;" (assignment_expression "pPStack_70 = unaff_s5" identifier = identifier) ;) (if_statement "if ((pPVar18 != (Parse *)0x0) && (pPStack_80 = (Parse *)pExpr, pExpr != (Expr *)0x0)) {\n    pPVar12 = (Parse *)(uint)pExpr->op;\n    unaff_s6 = (Parse *)jumpIfNull;\n    unaff_s7 = pPVar12;\n    if (pPVar12 == (Parse *)&DAT_00000031) {\n      unaff_s0 = (Parse *)(pParse->nLabel + -1);\n      pParse->nLabel = (int)unaff_s0;\n      pPVar11 = unaff_s0;\n      if (jumpIfNull != 0) {\n        pPVar11 = (Parse *)dest;\n      }\n      sqlite3ExprCodeIN(pParse,pExpr,(int)unaff_s0,(int)pPVar11);\n      xJump = (Parse *)0x0;\n      pPVar12 = (Parse *)dest;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,0xb);\nLAB_000e6494:\n      pPVar11 = pPVar18;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pPVar18,unaff_s0);\n      jumpIfNull = (int)pPVar12;\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pPVar12;\n    if ((Parse *)&DAT_00000031 < pPVar12) {\n      if (pPVar12 < (Parse *)0x3a) {\n        if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;\n        xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);\n        goto LAB_000e6238;\n      }\n      if (pPVar12 != (Parse *)0x9c) {\n        if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;\n        bVar9 = pExpr->op2 ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pPVar2 = (Parse *)0x34;\n      if (pPVar12 == (Parse *)&DAT_0000002d) {\n        pPVar2 = (Parse *)0x35;\n      }\n      unaff_s6 = (Parse *)0x80;\n      pPVar12 = pPVar2;\nLAB_000e6334:\n      pEVar15 = pExpr->pLeft;\n      uVar8 = pEVar15->op;\n      if (uVar8 == 0xa4) {\n        uVar8 = pEVar15->op2;\n      }\n      unaff_s7 = pPVar12;\n      if (uVar8 == 0xa5) {\n        iVar23 = ((pEVar15->x).pList)->nExpr;\nLAB_000e63d8:\n        unaff_s0 = (Parse *)PTR_LAB_00190c58;\n        if (1 < iVar23) goto LAB_000e63e8;\n      }\n      else if (uVar8 == '\x7f') {\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (Parse *)(PTR_LAB_00190c58 + -0x57b8);\n      pPVar18 = (Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1);\n      sqlite3ExprCodeTemp(pParse,pExpr->pRight,&regFree2);\n      xJump = (Parse *)pExpr->pRight;\n      jumpIfNull = (int)pPVar12;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(pParse,pExpr->pLeft);\n    }\n    else {\n      if (pPVar12 == (Parse *)0x2c) {\n        unaff_s0 = (Parse *)(pParse->nLabel + -1);\n        pParse->nLabel = (int)unaff_s0;\n        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);\n        pPVar12 = (Parse *)jumpIfNull;\n        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n        goto LAB_000e6494;\n      }\n      if (pPVar12 < (Parse *)0x2d) {\n        if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (Parse *)PTR_LAB_00190bd0;\n        if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);\n        if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }\nLAB_000e6238:\n        pPVar11 = pPVar18;\n        pPVar2 = (Parse *)dest;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);\n        unaff_s6 = (Parse *)jumpIfNull;\n        jumpIfNull = (int)pPVar2;\n      }\n      else {\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }\n    }\njoined_r0x000e64ac:\n    if (regFree1 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    pPVar12 = (Parse *)regFree2;\n    pPStack_7c = pParse;\n    pPStack_70 = (Parse *)dest;\n    if (regFree2 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }" if (parenthesized_expression "((pPVar18 != (Parse *)0x0) && (pPStack_80 = (Parse *)pExpr, pExpr != (Expr *)0x0))" ( (binary_expression "(pPVar18 != (Parse *)0x0) && (pPStack_80 = (Parse *)pExpr, pExpr != (Expr *)0x0)" (parenthesized_expression "(pPVar18 != (Parse *)0x0)" ( (binary_expression "pPVar18 != (Parse *)0x0" identifier != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pPStack_80 = (Parse *)pExpr, pExpr != (Expr *)0x0)" ( (comma_expression "pPStack_80 = (Parse *)pExpr, pExpr != (Expr *)0x0" (assignment_expression "pPStack_80 = (Parse *)pExpr" identifier = (cast_expression "(Parse *)pExpr" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "pExpr != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    pPVar12 = (Parse *)(uint)pExpr->op;\n    unaff_s6 = (Parse *)jumpIfNull;\n    unaff_s7 = pPVar12;\n    if (pPVar12 == (Parse *)&DAT_00000031) {\n      unaff_s0 = (Parse *)(pParse->nLabel + -1);\n      pParse->nLabel = (int)unaff_s0;\n      pPVar11 = unaff_s0;\n      if (jumpIfNull != 0) {\n        pPVar11 = (Parse *)dest;\n      }\n      sqlite3ExprCodeIN(pParse,pExpr,(int)unaff_s0,(int)pPVar11);\n      xJump = (Parse *)0x0;\n      pPVar12 = (Parse *)dest;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,0xb);\nLAB_000e6494:\n      pPVar11 = pPVar18;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pPVar18,unaff_s0);\n      jumpIfNull = (int)pPVar12;\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pPVar12;\n    if ((Parse *)&DAT_00000031 < pPVar12) {\n      if (pPVar12 < (Parse *)0x3a) {\n        if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;\n        xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);\n        goto LAB_000e6238;\n      }\n      if (pPVar12 != (Parse *)0x9c) {\n        if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;\n        bVar9 = pExpr->op2 ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pPVar2 = (Parse *)0x34;\n      if (pPVar12 == (Parse *)&DAT_0000002d) {\n        pPVar2 = (Parse *)0x35;\n      }\n      unaff_s6 = (Parse *)0x80;\n      pPVar12 = pPVar2;\nLAB_000e6334:\n      pEVar15 = pExpr->pLeft;\n      uVar8 = pEVar15->op;\n      if (uVar8 == 0xa4) {\n        uVar8 = pEVar15->op2;\n      }\n      unaff_s7 = pPVar12;\n      if (uVar8 == 0xa5) {\n        iVar23 = ((pEVar15->x).pList)->nExpr;\nLAB_000e63d8:\n        unaff_s0 = (Parse *)PTR_LAB_00190c58;\n        if (1 < iVar23) goto LAB_000e63e8;\n      }\n      else if (uVar8 == '\x7f') {\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (Parse *)(PTR_LAB_00190c58 + -0x57b8);\n      pPVar18 = (Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1);\n      sqlite3ExprCodeTemp(pParse,pExpr->pRight,&regFree2);\n      xJump = (Parse *)pExpr->pRight;\n      jumpIfNull = (int)pPVar12;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(pParse,pExpr->pLeft);\n    }\n    else {\n      if (pPVar12 == (Parse *)0x2c) {\n        unaff_s0 = (Parse *)(pParse->nLabel + -1);\n        pParse->nLabel = (int)unaff_s0;\n        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);\n        pPVar12 = (Parse *)jumpIfNull;\n        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n        goto LAB_000e6494;\n      }\n      if (pPVar12 < (Parse *)0x2d) {\n        if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (Parse *)PTR_LAB_00190bd0;\n        if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);\n        if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }\nLAB_000e6238:\n        pPVar11 = pPVar18;\n        pPVar2 = (Parse *)dest;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);\n        unaff_s6 = (Parse *)jumpIfNull;\n        jumpIfNull = (int)pPVar2;\n      }\n      else {\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }\n    }\njoined_r0x000e64ac:\n    if (regFree1 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    pPVar12 = (Parse *)regFree2;\n    pPStack_7c = pParse;\n    pPStack_70 = (Parse *)dest;\n    if (regFree2 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }" { (expression_statement "pPVar12 = (Parse *)(uint)pExpr->op;" (assignment_expression "pPVar12 = (Parse *)(uint)pExpr->op" identifier = (cast_expression "(Parse *)(uint)pExpr->op" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pExpr->op" ( (type_descriptor "uint" type_identifier) ) (field_expression "pExpr->op" identifier -> field_identifier)))) ;) (expression_statement "unaff_s6 = (Parse *)jumpIfNull;" (assignment_expression "unaff_s6 = (Parse *)jumpIfNull" identifier = (cast_expression "(Parse *)jumpIfNull" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s7 = pPVar12;" (assignment_expression "unaff_s7 = pPVar12" identifier = identifier) ;) (if_statement "if (pPVar12 == (Parse *)&DAT_00000031) {\n      unaff_s0 = (Parse *)(pParse->nLabel + -1);\n      pParse->nLabel = (int)unaff_s0;\n      pPVar11 = unaff_s0;\n      if (jumpIfNull != 0) {\n        pPVar11 = (Parse *)dest;\n      }\n      sqlite3ExprCodeIN(pParse,pExpr,(int)unaff_s0,(int)pPVar11);\n      xJump = (Parse *)0x0;\n      pPVar12 = (Parse *)dest;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,0xb);\nLAB_000e6494:\n      pPVar11 = pPVar18;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pPVar18,unaff_s0);\n      jumpIfNull = (int)pPVar12;\n      goto joined_r0x000e64ac;\n    }" if (parenthesized_expression "(pPVar12 == (Parse *)&DAT_00000031)" ( (binary_expression "pPVar12 == (Parse *)&DAT_00000031" identifier == (cast_expression "(Parse *)&DAT_00000031" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000031" & identifier))) )) (compound_statement "{\n      unaff_s0 = (Parse *)(pParse->nLabel + -1);\n      pParse->nLabel = (int)unaff_s0;\n      pPVar11 = unaff_s0;\n      if (jumpIfNull != 0) {\n        pPVar11 = (Parse *)dest;\n      }\n      sqlite3ExprCodeIN(pParse,pExpr,(int)unaff_s0,(int)pPVar11);\n      xJump = (Parse *)0x0;\n      pPVar12 = (Parse *)dest;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,0xb);\nLAB_000e6494:\n      pPVar11 = pPVar18;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pPVar18,unaff_s0);\n      jumpIfNull = (int)pPVar12;\n      goto joined_r0x000e64ac;\n    }" { (expression_statement "unaff_s0 = (Parse *)(pParse->nLabel + -1);" (assignment_expression "unaff_s0 = (Parse *)(pParse->nLabel + -1)" identifier = (cast_expression "(Parse *)(pParse->nLabel + -1)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse->nLabel + -1)" ( (binary_expression "pParse->nLabel + -1" (field_expression "pParse->nLabel" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pParse->nLabel = (int)unaff_s0;" (assignment_expression "pParse->nLabel = (int)unaff_s0" (field_expression "pParse->nLabel" identifier -> field_identifier) = (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pPVar11 = unaff_s0;" (assignment_expression "pPVar11 = unaff_s0" identifier = identifier) ;) (if_statement "if (jumpIfNull != 0) {\n        pPVar11 = (Parse *)dest;\n      }" if (parenthesized_expression "(jumpIfNull != 0)" ( (binary_expression "jumpIfNull != 0" identifier != number_literal) )) (compound_statement "{\n        pPVar11 = (Parse *)dest;\n      }" { (expression_statement "pPVar11 = (Parse *)dest;" (assignment_expression "pPVar11 = (Parse *)dest" identifier = (cast_expression "(Parse *)dest" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "sqlite3ExprCodeIN(pParse,pExpr,(int)unaff_s0,(int)pPVar11);" (call_expression "sqlite3ExprCodeIN(pParse,pExpr,(int)unaff_s0,(int)pPVar11)" identifier (argument_list "(pParse,pExpr,(int)unaff_s0,(int)pPVar11)" ( identifier , identifier , (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "xJump = (Parse *)0x0;" (assignment_expression "xJump = (Parse *)0x0" identifier = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar12 = (Parse *)dest;" (assignment_expression "pPVar12 = (Parse *)dest" identifier = (cast_expression "(Parse *)dest" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,0xb);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,0xb)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(pPVar18,0xb)" ( identifier , number_literal ))) ;) (labeled_statement "LAB_000e6494:\n      pPVar11 = pPVar18;" statement_identifier : (expression_statement "pPVar11 = pPVar18;" (assignment_expression "pPVar11 = pPVar18" identifier = identifier) ;)) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(pPVar18,unaff_s0);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(pPVar18,unaff_s0)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xd78)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0xd78)" ( (binary_expression "PTR_LAB_00190bc0 + 0xd78" identifier + number_literal) )))) )) (argument_list "(pPVar18,unaff_s0)" ( identifier , identifier ))) ;) (expression_statement "jumpIfNull = (int)pPVar12;" (assignment_expression "jumpIfNull = (int)pPVar12" identifier = (cast_expression "(int)pPVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (expression_statement "unaff_s0 = pPVar12;" (assignment_expression "unaff_s0 = pPVar12" identifier = identifier) ;) (if_statement "if ((Parse *)&DAT_00000031 < pPVar12) {\n      if (pPVar12 < (Parse *)0x3a) {\n        if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;\n        xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);\n        goto LAB_000e6238;\n      }\n      if (pPVar12 != (Parse *)0x9c) {\n        if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;\n        bVar9 = pExpr->op2 ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pPVar2 = (Parse *)0x34;\n      if (pPVar12 == (Parse *)&DAT_0000002d) {\n        pPVar2 = (Parse *)0x35;\n      }\n      unaff_s6 = (Parse *)0x80;\n      pPVar12 = pPVar2;\nLAB_000e6334:\n      pEVar15 = pExpr->pLeft;\n      uVar8 = pEVar15->op;\n      if (uVar8 == 0xa4) {\n        uVar8 = pEVar15->op2;\n      }\n      unaff_s7 = pPVar12;\n      if (uVar8 == 0xa5) {\n        iVar23 = ((pEVar15->x).pList)->nExpr;\nLAB_000e63d8:\n        unaff_s0 = (Parse *)PTR_LAB_00190c58;\n        if (1 < iVar23) goto LAB_000e63e8;\n      }\n      else if (uVar8 == '\x7f') {\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (Parse *)(PTR_LAB_00190c58 + -0x57b8);\n      pPVar18 = (Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1);\n      sqlite3ExprCodeTemp(pParse,pExpr->pRight,&regFree2);\n      xJump = (Parse *)pExpr->pRight;\n      jumpIfNull = (int)pPVar12;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(pParse,pExpr->pLeft);\n    }\n    else {\n      if (pPVar12 == (Parse *)0x2c) {\n        unaff_s0 = (Parse *)(pParse->nLabel + -1);\n        pParse->nLabel = (int)unaff_s0;\n        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);\n        pPVar12 = (Parse *)jumpIfNull;\n        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n        goto LAB_000e6494;\n      }\n      if (pPVar12 < (Parse *)0x2d) {\n        if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (Parse *)PTR_LAB_00190bd0;\n        if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);\n        if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }\nLAB_000e6238:\n        pPVar11 = pPVar18;\n        pPVar2 = (Parse *)dest;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);\n        unaff_s6 = (Parse *)jumpIfNull;\n        jumpIfNull = (int)pPVar2;\n      }\n      else {\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }\n    }" if (parenthesized_expression "((Parse *)&DAT_00000031 < pPVar12)" ( (binary_expression "(Parse *)&DAT_00000031 < pPVar12" (cast_expression "(Parse *)&DAT_00000031" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000031" & identifier)) < identifier) )) (compound_statement "{\n      if (pPVar12 < (Parse *)0x3a) {\n        if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;\n        xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);\n        goto LAB_000e6238;\n      }\n      if (pPVar12 != (Parse *)0x9c) {\n        if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;\n        bVar9 = pExpr->op2 ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pPVar2 = (Parse *)0x34;\n      if (pPVar12 == (Parse *)&DAT_0000002d) {\n        pPVar2 = (Parse *)0x35;\n      }\n      unaff_s6 = (Parse *)0x80;\n      pPVar12 = pPVar2;\nLAB_000e6334:\n      pEVar15 = pExpr->pLeft;\n      uVar8 = pEVar15->op;\n      if (uVar8 == 0xa4) {\n        uVar8 = pEVar15->op2;\n      }\n      unaff_s7 = pPVar12;\n      if (uVar8 == 0xa5) {\n        iVar23 = ((pEVar15->x).pList)->nExpr;\nLAB_000e63d8:\n        unaff_s0 = (Parse *)PTR_LAB_00190c58;\n        if (1 < iVar23) goto LAB_000e63e8;\n      }\n      else if (uVar8 == '\x7f') {\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (Parse *)(PTR_LAB_00190c58 + -0x57b8);\n      pPVar18 = (Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1);\n      sqlite3ExprCodeTemp(pParse,pExpr->pRight,&regFree2);\n      xJump = (Parse *)pExpr->pRight;\n      jumpIfNull = (int)pPVar12;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(pParse,pExpr->pLeft);\n    }" { (if_statement "if (pPVar12 < (Parse *)0x3a) {\n        if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;\n        xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);\n        goto LAB_000e6238;\n      }" if (parenthesized_expression "(pPVar12 < (Parse *)0x3a)" ( (binary_expression "pPVar12 < (Parse *)0x3a" identifier < (cast_expression "(Parse *)0x3a" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;\n        xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);\n        goto LAB_000e6238;\n      }" { (if_statement "if ((Parse *)&DAT_00000033 < pPVar12) goto LAB_000e6334;" if (parenthesized_expression "((Parse *)&DAT_00000033 < pPVar12)" ( (binary_expression "(Parse *)&DAT_00000033 < pPVar12" (cast_expression "(Parse *)&DAT_00000033" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000033" & identifier)) < identifier) )) (goto_statement "goto LAB_000e6334;" goto statement_identifier ;)) (expression_statement "xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1);" (assignment_expression "xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1)" identifier = (cast_expression "(Parse *)sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3ExprCodeTemp(pParse,pExpr->pLeft,&regFree1)" identifier (argument_list "(pParse,pExpr->pLeft,&regFree1)" ( identifier , (field_expression "pExpr->pLeft" identifier -> field_identifier) , (pointer_expression "&regFree1" & identifier) ))))) ;) (goto_statement "goto LAB_000e6238;" goto statement_identifier ;) })) (if_statement "if (pPVar12 != (Parse *)0x9c) {\n        if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;\n        bVar9 = pExpr->op2 ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        goto joined_r0x000e64ac;\n      }" if (parenthesized_expression "(pPVar12 != (Parse *)0x9c)" ( (binary_expression "pPVar12 != (Parse *)0x9c" identifier != (cast_expression "(Parse *)0x9c" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;\n        bVar9 = pExpr->op2 ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        goto joined_r0x000e64ac;\n      }" { (if_statement "if (pPVar12 != (Parse *)0xa3) goto LAB_000e63e8;" if (parenthesized_expression "(pPVar12 != (Parse *)0xa3)" ( (binary_expression "pPVar12 != (Parse *)0xa3" identifier != (cast_expression "(Parse *)0xa3" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e63e8;" goto statement_identifier ;)) (expression_statement "bVar9 = pExpr->op2 ^ 0x9c;" (assignment_expression "bVar9 = pExpr->op2 ^ 0x9c" identifier = (binary_expression "pExpr->op2 ^ 0x9c" (field_expression "pExpr->op2" identifier -> field_identifier) ^ number_literal)) ;) (if_statement "if ((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')) {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }\n        else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }" if (parenthesized_expression "((bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0'))" ( (binary_expression "(bVar9 == 0) == (*(char *)((pExpr->pRight->u).iValue + 4) == '\0')" (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) == (parenthesized_expression "(*(char *)((pExpr->pRight->u).iValue + 4) == '\0')" ( (binary_expression "*(char *)((pExpr->pRight->u).iValue + 4) == '\0'" (pointer_expression "*(char *)((pExpr->pRight->u).iValue + 4)" * (cast_expression "(char *)((pExpr->pRight->u).iValue + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pExpr->pRight->u).iValue + 4)" ( (binary_expression "(pExpr->pRight->u).iValue + 4" (field_expression "(pExpr->pRight->u).iValue" (parenthesized_expression "(pExpr->pRight->u)" ( (field_expression "pExpr->pRight->u" (field_expression "pExpr->pRight" identifier -> field_identifier) -> field_identifier) )) . field_identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }" { (expression_statement "pPVar12 = (Parse *)&DAT_00000010;" (assignment_expression "pPVar12 = (Parse *)&DAT_00000010" identifier = (cast_expression "(Parse *)&DAT_00000010" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000010" & identifier))) ;) (if_statement "if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }" if (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            pPVar12 = (Parse *)0x0;\n          }" { (expression_statement "pPVar12 = (Parse *)0x0;" (assignment_expression "pPVar12 = (Parse *)0x0" identifier = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12);" (call_expression "sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,(int)pPVar12)" identifier (argument_list "(pParse,pExpr->pLeft,dest,(int)pPVar12)" ( identifier , (field_expression "pExpr->pLeft" identifier -> field_identifier) , identifier , (cast_expression "(int)pPVar12" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "jumpIfNull = (int)pPVar12;" (assignment_expression "jumpIfNull = (int)pPVar12" identifier = (cast_expression "(int)pPVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }" else (compound_statement "{\n          pPVar12 = (Parse *)&DAT_00000010;\n          if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);\n          jumpIfNull = (int)pPVar12;\n        }" { (expression_statement "pPVar12 = (Parse *)&DAT_00000010;" (assignment_expression "pPVar12 = (Parse *)&DAT_00000010" identifier = (cast_expression "(Parse *)&DAT_00000010" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000010" & identifier))) ;) (if_statement "if (bVar9 != 0) {\n            pPVar12 = (Parse *)0x0;\n          }" if (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            pPVar12 = (Parse *)0x0;\n          }" { (expression_statement "pPVar12 = (Parse *)0x0;" (assignment_expression "pPVar12 = (Parse *)0x0" identifier = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12);" (call_expression "sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,(int)pPVar12)" identifier (argument_list "(pParse,pExpr->pLeft,dest,(int)pPVar12)" ( identifier , (field_expression "pExpr->pLeft" identifier -> field_identifier) , identifier , (cast_expression "(int)pPVar12" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "jumpIfNull = (int)pPVar12;" (assignment_expression "jumpIfNull = (int)pPVar12" identifier = (cast_expression "(int)pPVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (labeled_statement "LAB_000e631c:\n      pPVar2 = (Parse *)0x34;" statement_identifier : (expression_statement "pPVar2 = (Parse *)0x34;" (assignment_expression "pPVar2 = (Parse *)0x34" identifier = (cast_expression "(Parse *)0x34" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (pPVar12 == (Parse *)&DAT_0000002d) {\n        pPVar2 = (Parse *)0x35;\n      }" if (parenthesized_expression "(pPVar12 == (Parse *)&DAT_0000002d)" ( (binary_expression "pPVar12 == (Parse *)&DAT_0000002d" identifier == (cast_expression "(Parse *)&DAT_0000002d" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000002d" & identifier))) )) (compound_statement "{\n        pPVar2 = (Parse *)0x35;\n      }" { (expression_statement "pPVar2 = (Parse *)0x35;" (assignment_expression "pPVar2 = (Parse *)0x35" identifier = (cast_expression "(Parse *)0x35" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "unaff_s6 = (Parse *)0x80;" (assignment_expression "unaff_s6 = (Parse *)0x80" identifier = (cast_expression "(Parse *)0x80" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar12 = pPVar2;" (assignment_expression "pPVar12 = pPVar2" identifier = identifier) ;) (labeled_statement "LAB_000e6334:\n      pEVar15 = pExpr->pLeft;" statement_identifier : (expression_statement "pEVar15 = pExpr->pLeft;" (assignment_expression "pEVar15 = pExpr->pLeft" identifier = (field_expression "pExpr->pLeft" identifier -> field_identifier)) ;)) (expression_statement "uVar8 = pEVar15->op;" (assignment_expression "uVar8 = pEVar15->op" identifier = (field_expression "pEVar15->op" identifier -> field_identifier)) ;) (if_statement "if (uVar8 == 0xa4) {\n        uVar8 = pEVar15->op2;\n      }" if (parenthesized_expression "(uVar8 == 0xa4)" ( (binary_expression "uVar8 == 0xa4" identifier == number_literal) )) (compound_statement "{\n        uVar8 = pEVar15->op2;\n      }" { (expression_statement "uVar8 = pEVar15->op2;" (assignment_expression "uVar8 = pEVar15->op2" identifier = (field_expression "pEVar15->op2" identifier -> field_identifier)) ;) })) (expression_statement "unaff_s7 = pPVar12;" (assignment_expression "unaff_s7 = pPVar12" identifier = identifier) ;) (if_statement "if (uVar8 == 0xa5) {\n        iVar23 = ((pEVar15->x).pList)->nExpr;\nLAB_000e63d8:\n        unaff_s0 = (Parse *)PTR_LAB_00190c58;\n        if (1 < iVar23) goto LAB_000e63e8;\n      }\n      else if (uVar8 == '\x7f') {\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }" if (parenthesized_expression "(uVar8 == 0xa5)" ( (binary_expression "uVar8 == 0xa5" identifier == number_literal) )) (compound_statement "{\n        iVar23 = ((pEVar15->x).pList)->nExpr;\nLAB_000e63d8:\n        unaff_s0 = (Parse *)PTR_LAB_00190c58;\n        if (1 < iVar23) goto LAB_000e63e8;\n      }" { (expression_statement "iVar23 = ((pEVar15->x).pList)->nExpr;" (assignment_expression "iVar23 = ((pEVar15->x).pList)->nExpr" identifier = (field_expression "((pEVar15->x).pList)->nExpr" (parenthesized_expression "((pEVar15->x).pList)" ( (field_expression "(pEVar15->x).pList" (parenthesized_expression "(pEVar15->x)" ( (field_expression "pEVar15->x" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (labeled_statement "LAB_000e63d8:\n        unaff_s0 = (Parse *)PTR_LAB_00190c58;" statement_identifier : (expression_statement "unaff_s0 = (Parse *)PTR_LAB_00190c58;" (assignment_expression "unaff_s0 = (Parse *)PTR_LAB_00190c58" identifier = (cast_expression "(Parse *)PTR_LAB_00190c58" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (1 < iVar23) goto LAB_000e63e8;" if (parenthesized_expression "(1 < iVar23)" ( (binary_expression "1 < iVar23" number_literal < identifier) )) (goto_statement "goto LAB_000e63e8;" goto statement_identifier ;)) }) (else_clause "else if (uVar8 == '\x7f') {\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }" else (if_statement "if (uVar8 == '\x7f') {\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }" if (parenthesized_expression "(uVar8 == '\x7f')" ( (binary_expression "uVar8 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n        iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;\n        goto LAB_000e63d8;\n      }" { (expression_statement "iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr;" (assignment_expression "iVar23 = ((pEVar15->x).pSelect)->pEList->nExpr" identifier = (field_expression "((pEVar15->x).pSelect)->pEList->nExpr" (field_expression "((pEVar15->x).pSelect)->pEList" (parenthesized_expression "((pEVar15->x).pSelect)" ( (field_expression "(pEVar15->x).pSelect" (parenthesized_expression "(pEVar15->x)" ( (field_expression "pEVar15->x" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier)) ;) (goto_statement "goto LAB_000e63d8;" goto statement_identifier ;) })))) (expression_statement "unaff_s0 = (Parse *)(PTR_LAB_00190c58 + -0x57b8);" (assignment_expression "unaff_s0 = (Parse *)(PTR_LAB_00190c58 + -0x57b8)" identifier = (cast_expression "(Parse *)(PTR_LAB_00190c58 + -0x57b8)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190c58 + -0x57b8)" ( (binary_expression "PTR_LAB_00190c58 + -0x57b8" identifier + number_literal) )))) ;) (expression_statement "pPVar18 = (Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1);" (assignment_expression "pPVar18 = (Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1)" identifier = (cast_expression "(Parse *)sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3ExprCodeTemp(pParse,pEVar15,&regFree1)" identifier (argument_list "(pParse,pEVar15,&regFree1)" ( identifier , identifier , (pointer_expression "&regFree1" & identifier) ))))) ;) (expression_statement "sqlite3ExprCodeTemp(pParse,pExpr->pRight,&regFree2);" (call_expression "sqlite3ExprCodeTemp(pParse,pExpr->pRight,&regFree2)" identifier (argument_list "(pParse,pExpr->pRight,&regFree2)" ( identifier , (field_expression "pExpr->pRight" identifier -> field_identifier) , (pointer_expression "&regFree2" & identifier) ))) ;) (expression_statement "xJump = (Parse *)pExpr->pRight;" (assignment_expression "xJump = (Parse *)pExpr->pRight" identifier = (cast_expression "(Parse *)pExpr->pRight" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pExpr->pRight" identifier -> field_identifier))) ;) (expression_statement "jumpIfNull = (int)pPVar12;" (assignment_expression "jumpIfNull = (int)pPVar12" identifier = (cast_expression "(int)pPVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))(pParse,pExpr->pLeft);" (call_expression "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))(pParse,pExpr->pLeft)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc4 + -0x59dc)" * (cast_expression "(code *)(PTR_LAB_00190bc4 + -0x59dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc4 + -0x59dc)" ( (binary_expression "PTR_LAB_00190bc4 + -0x59dc" identifier + number_literal) )))) )) (argument_list "(pParse,pExpr->pLeft)" ( identifier , (field_expression "pExpr->pLeft" identifier -> field_identifier) ))) ;) }) (else_clause "else {\n      if (pPVar12 == (Parse *)0x2c) {\n        unaff_s0 = (Parse *)(pParse->nLabel + -1);\n        pParse->nLabel = (int)unaff_s0;\n        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);\n        pPVar12 = (Parse *)jumpIfNull;\n        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n        goto LAB_000e6494;\n      }\n      if (pPVar12 < (Parse *)0x2d) {\n        if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (Parse *)PTR_LAB_00190bd0;\n        if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);\n        if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }\nLAB_000e6238:\n        pPVar11 = pPVar18;\n        pPVar2 = (Parse *)dest;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);\n        unaff_s6 = (Parse *)jumpIfNull;\n        jumpIfNull = (int)pPVar2;\n      }\n      else {\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }\n    }" else (compound_statement "{\n      if (pPVar12 == (Parse *)0x2c) {\n        unaff_s0 = (Parse *)(pParse->nLabel + -1);\n        pParse->nLabel = (int)unaff_s0;\n        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);\n        pPVar12 = (Parse *)jumpIfNull;\n        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n        goto LAB_000e6494;\n      }\n      if (pPVar12 < (Parse *)0x2d) {\n        if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (Parse *)PTR_LAB_00190bd0;\n        if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);\n        if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }\nLAB_000e6238:\n        pPVar11 = pPVar18;\n        pPVar2 = (Parse *)dest;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);\n        unaff_s6 = (Parse *)jumpIfNull;\n        jumpIfNull = (int)pPVar2;\n      }\n      else {\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }\n    }" { (if_statement "if (pPVar12 == (Parse *)0x2c) {\n        unaff_s0 = (Parse *)(pParse->nLabel + -1);\n        pParse->nLabel = (int)unaff_s0;\n        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);\n        pPVar12 = (Parse *)jumpIfNull;\n        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n        goto LAB_000e6494;\n      }" if (parenthesized_expression "(pPVar12 == (Parse *)0x2c)" ( (binary_expression "pPVar12 == (Parse *)0x2c" identifier == (cast_expression "(Parse *)0x2c" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_s0 = (Parse *)(pParse->nLabel + -1);\n        pParse->nLabel = (int)unaff_s0;\n        sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);\n        pPVar12 = (Parse *)jumpIfNull;\n        sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n        goto LAB_000e6494;\n      }" { (expression_statement "unaff_s0 = (Parse *)(pParse->nLabel + -1);" (assignment_expression "unaff_s0 = (Parse *)(pParse->nLabel + -1)" identifier = (cast_expression "(Parse *)(pParse->nLabel + -1)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse->nLabel + -1)" ( (binary_expression "pParse->nLabel + -1" (field_expression "pParse->nLabel" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pParse->nLabel = (int)unaff_s0;" (assignment_expression "pParse->nLabel = (int)unaff_s0" (field_expression "pParse->nLabel" identifier -> field_identifier) = (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10);" (call_expression "sqlite3ExprIfFalse(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10)" identifier (argument_list "(pParse,pExpr->pLeft,(int)unaff_s0,jumpIfNull ^ 0x10)" ( identifier , (field_expression "pExpr->pLeft" identifier -> field_identifier) , (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "jumpIfNull ^ 0x10" identifier ^ number_literal) ))) ;) (expression_statement "pPVar12 = (Parse *)jumpIfNull;" (assignment_expression "pPVar12 = (Parse *)jumpIfNull" identifier = (cast_expression "(Parse *)jumpIfNull" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);" (call_expression "sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull)" identifier (argument_list "(pParse,pExpr->pRight,dest,jumpIfNull)" ( identifier , (field_expression "pExpr->pRight" identifier -> field_identifier) , identifier , identifier ))) ;) (goto_statement "goto LAB_000e6494;" goto statement_identifier ;) })) (if_statement "if (pPVar12 < (Parse *)0x2d) {\n        if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (Parse *)PTR_LAB_00190bd0;\n        if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);\n        if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }\nLAB_000e6238:\n        pPVar11 = pPVar18;\n        pPVar2 = (Parse *)dest;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);\n        unaff_s6 = (Parse *)jumpIfNull;\n        jumpIfNull = (int)pPVar2;\n      }\n      else {\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }" if (parenthesized_expression "(pPVar12 < (Parse *)0x2d)" ( (binary_expression "pPVar12 < (Parse *)0x2d" identifier < (cast_expression "(Parse *)0x2d" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (Parse *)PTR_LAB_00190bd0;\n        if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);\n        if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }\nLAB_000e6238:\n        pPVar11 = pPVar18;\n        pPVar2 = (Parse *)dest;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);\n        unaff_s6 = (Parse *)jumpIfNull;\n        jumpIfNull = (int)pPVar2;\n      }" { (if_statement "if (pPVar12 == (Parse *)&DAT_00000013) {\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }" if (parenthesized_expression "(pPVar12 == (Parse *)&DAT_00000013)" ( (binary_expression "pPVar12 == (Parse *)&DAT_00000013" identifier == (cast_expression "(Parse *)&DAT_00000013" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000013" & identifier))) )) (compound_statement "{\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }" { (expression_statement "pPVar12 = (Parse *)jumpIfNull;" (assignment_expression "pPVar12 = (Parse *)jumpIfNull" identifier = (cast_expression "(Parse *)jumpIfNull" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull);" (call_expression "sqlite3ExprIfFalse(pParse,pExpr->pLeft,dest,jumpIfNull)" identifier (argument_list "(pParse,pExpr->pLeft,dest,jumpIfNull)" ( identifier , (field_expression "pExpr->pLeft" identifier -> field_identifier) , identifier , identifier ))) ;) (expression_statement "jumpIfNull = (int)pPVar12;" (assignment_expression "jumpIfNull = (int)pPVar12" identifier = (cast_expression "(int)pPVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (expression_statement "unaff_s0 = (Parse *)PTR_LAB_00190bd0;" (assignment_expression "unaff_s0 = (Parse *)PTR_LAB_00190bd0" identifier = (cast_expression "(Parse *)PTR_LAB_00190bd0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pPVar12 == (Parse *)&DAT_0000002b) {\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }" if (parenthesized_expression "(pPVar12 == (Parse *)&DAT_0000002b)" ( (binary_expression "pPVar12 == (Parse *)&DAT_0000002b" identifier == (cast_expression "(Parse *)&DAT_0000002b" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000002b" & identifier))) )) (compound_statement "{\n          unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);\n          sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);\n          pPVar12 = (Parse *)jumpIfNull;\n          sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);\n          jumpIfNull = (int)pPVar12;\n          goto joined_r0x000e64ac;\n        }" { (expression_statement "unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc);" (assignment_expression "unaff_s0 = (Parse *)(PTR_LAB_00190bd0 + 0x60cc)" identifier = (cast_expression "(Parse *)(PTR_LAB_00190bd0 + 0x60cc)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bd0 + 0x60cc)" ( (binary_expression "PTR_LAB_00190bd0 + 0x60cc" identifier + number_literal) )))) ;) (expression_statement "sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull);" (call_expression "sqlite3ExprIfTrue(pParse,pExpr->pLeft,dest,jumpIfNull)" identifier (argument_list "(pParse,pExpr->pLeft,dest,jumpIfNull)" ( identifier , (field_expression "pExpr->pLeft" identifier -> field_identifier) , identifier , identifier ))) ;) (expression_statement "pPVar12 = (Parse *)jumpIfNull;" (assignment_expression "pPVar12 = (Parse *)jumpIfNull" identifier = (cast_expression "(Parse *)jumpIfNull" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull);" (call_expression "sqlite3ExprIfTrue(pParse,pExpr->pRight,dest,jumpIfNull)" identifier (argument_list "(pParse,pExpr->pRight,dest,jumpIfNull)" ( identifier , (field_expression "pExpr->pRight" identifier -> field_identifier) , identifier , identifier ))) ;) (expression_statement "jumpIfNull = (int)pPVar12;" (assignment_expression "jumpIfNull = (int)pPVar12" identifier = (cast_expression "(int)pPVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (labeled_statement "LAB_000e63e8:\n        iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);" statement_identifier : (expression_statement "iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr);" (assignment_expression "iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr)" identifier = (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(pExpr)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4d8c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4d8c)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4d8c)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4d8c" identifier + number_literal) )))) )) (argument_list "(pExpr)" ( identifier )))) ;)) (if_statement "if (iVar23 == 0) {\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }\n        else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n          pPVar11 = (Parse *)pExpr;\n          iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          if (iVar23 != 0) goto joined_r0x000e64ac;\n          xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);\n          pPVar12 = (Parse *)0x12;\n          jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);\n        }" { (expression_statement "pPVar11 = (Parse *)pExpr;" (assignment_expression "pPVar11 = (Parse *)pExpr" identifier = (cast_expression "(Parse *)pExpr" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();" (assignment_expression "iVar23 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))()" identifier = (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4e14))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4e14))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4e14)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4e14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4e14)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4e14" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar23 != 0) goto joined_r0x000e64ac;" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;)) (expression_statement "xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1);" (assignment_expression "xJump = (Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1)" identifier = (cast_expression "(Parse *)sqlite3ExprCodeTemp(pParse,pExpr,&regFree1)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3ExprCodeTemp(pParse,pExpr,&regFree1)" identifier (argument_list "(pParse,pExpr,&regFree1)" ( identifier , identifier , (pointer_expression "&regFree1" & identifier) ))))) ;) (expression_statement "pPVar12 = (Parse *)0x12;" (assignment_expression "pPVar12 = (Parse *)0x12" identifier = (cast_expression "(Parse *)0x12" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0);" (assignment_expression "jumpIfNull = (int)(uint)(unaff_s6 != (Parse *)0x0)" identifier = (cast_expression "(int)(uint)(unaff_s6 != (Parse *)0x0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(unaff_s6 != (Parse *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s6 != (Parse *)0x0)" ( (binary_expression "unaff_s6 != (Parse *)0x0" identifier != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) }) (else_clause "else {\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }" else (compound_statement "{\n          xJump = (Parse *)0x0;\n          pPVar12 = (Parse *)&DAT_0000000b;\n          jumpIfNull = (int)unaff_s6;\n        }" { (expression_statement "xJump = (Parse *)0x0;" (assignment_expression "xJump = (Parse *)0x0" identifier = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar12 = (Parse *)&DAT_0000000b;" (assignment_expression "pPVar12 = (Parse *)&DAT_0000000b" identifier = (cast_expression "(Parse *)&DAT_0000000b" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000b" & identifier))) ;) (expression_statement "jumpIfNull = (int)unaff_s6;" (assignment_expression "jumpIfNull = (int)unaff_s6" identifier = (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (labeled_statement "LAB_000e6238:\n        pPVar11 = pPVar18;" statement_identifier : (expression_statement "pPVar11 = pPVar18;" (assignment_expression "pPVar11 = pPVar18" identifier = identifier) ;)) (expression_statement "pPVar2 = (Parse *)dest;" (assignment_expression "pPVar2 = (Parse *)dest" identifier = (cast_expression "(Parse *)dest" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pPVar18,pPVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(pPVar18,pPVar12)" ( identifier , identifier ))) ;) (expression_statement "unaff_s6 = (Parse *)jumpIfNull;" (assignment_expression "unaff_s6 = (Parse *)jumpIfNull" identifier = (cast_expression "(Parse *)jumpIfNull" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "jumpIfNull = (int)pPVar2;" (assignment_expression "jumpIfNull = (int)pPVar2" identifier = (cast_expression "(int)pPVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }" else (compound_statement "{\n        if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;\n        if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;\n        xJump = (Parse *)&pExpr->x;\n        pPVar12 = (Parse *)dest;\n        exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);\n        jumpIfNull = (int)pPVar12;\n      }" { (if_statement "if (pPVar12 == (Parse *)&DAT_0000002d) goto LAB_000e631c;" if (parenthesized_expression "(pPVar12 == (Parse *)&DAT_0000002d)" ( (binary_expression "pPVar12 == (Parse *)&DAT_0000002d" identifier == (cast_expression "(Parse *)&DAT_0000002d" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000002d" & identifier))) )) (goto_statement "goto LAB_000e631c;" goto statement_identifier ;)) (if_statement "if (pPVar12 != (Parse *)0x30) goto LAB_000e63e8;" if (parenthesized_expression "(pPVar12 != (Parse *)0x30)" ( (binary_expression "pPVar12 != (Parse *)0x30" identifier != (cast_expression "(Parse *)0x30" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e63e8;" goto statement_identifier ;)) (expression_statement "xJump = (Parse *)&pExpr->x;" (assignment_expression "xJump = (Parse *)&pExpr->x" identifier = (cast_expression "(Parse *)&pExpr->x" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pExpr->x" & (field_expression "pExpr->x" identifier -> field_identifier)))) ;) (expression_statement "pPVar12 = (Parse *)dest;" (assignment_expression "pPVar12 = (Parse *)dest" identifier = (cast_expression "(Parse *)dest" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull);" (call_expression "exprCodeBetween(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull)" identifier (argument_list "(pParse,(Expr *)&pExpr->pLeft,(int)xJump,\n                        (_func_void_Parse_ptr_Expr_ptr_int_int *)dest,\n                        (int)(PTR_LAB_00190bd0 + 0x60cc),(Expr *)jumpIfNull)" ( identifier , (cast_expression "(Expr *)&pExpr->pLeft" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pExpr->pLeft" & (field_expression "pExpr->pLeft" identifier -> field_identifier))) , (cast_expression "(int)xJump" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(_func_void_Parse_ptr_Expr_ptr_int_int *)dest" ( (type_descriptor "_func_void_Parse_ptr_Expr_ptr_int_int *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)(PTR_LAB_00190bd0 + 0x60cc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(PTR_LAB_00190bd0 + 0x60cc)" ( (binary_expression "PTR_LAB_00190bd0 + 0x60cc" identifier + number_literal) ))) , (cast_expression "(Expr *)jumpIfNull" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "jumpIfNull = (int)pPVar12;" (assignment_expression "jumpIfNull = (int)pPVar12" identifier = (cast_expression "(int)pPVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }))) (labeled_statement "joined_r0x000e64ac:\n    if (regFree1 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" statement_identifier : (if_statement "if (regFree1 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" if (parenthesized_expression "(regFree1 != 0)" ( (binary_expression "regFree1 != 0" identifier != number_literal) )) (compound_statement "{\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" { (expression_statement "pPVar11 = pParse;" (assignment_expression "pPVar11 = pParse" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x4854))();" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4854)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4854)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4854" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "pPVar12 = (Parse *)regFree2;" (assignment_expression "pPVar12 = (Parse *)regFree2" identifier = (cast_expression "(Parse *)regFree2" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pPStack_7c = pParse;" (assignment_expression "pPStack_7c = pParse" identifier = identifier) ;) (expression_statement "pPStack_70 = (Parse *)dest;" (assignment_expression "pPStack_70 = (Parse *)dest" identifier = (cast_expression "(Parse *)dest" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (regFree2 != 0) {\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" if (parenthesized_expression "(regFree2 != 0)" ( (binary_expression "regFree2 != 0" identifier != number_literal) )) (compound_statement "{\n      pPVar11 = pParse;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" { (expression_statement "pPVar11 = pParse;" (assignment_expression "pPVar11 = pParse" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x4854))();" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4854)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4854)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4854" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) })) (if_statement "if (ppTStack_2c == *(Table ***)puVar1) {\n    return;\n  }" if (parenthesized_expression "(ppTStack_2c == *(Table ***)puVar1)" ( (binary_expression "ppTStack_2c == *(Table ***)puVar1" identifier == (pointer_expression "*(Table ***)puVar1" * (cast_expression "(Table ***)puVar1" ( (type_descriptor "Table ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar25 = sqlite3ExprIfFalse;" (assignment_expression "pcVar25 = sqlite3ExprIfFalse" identifier = identifier) ;) (expression_statement "puVar22 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar22 = PTR___stack_chk_fail_00190df8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_78 = puVar1;" (assignment_expression "puStack_78 = puVar1" identifier = identifier) ;) (expression_statement "pEVar15 = *(Expr **)(puVar22 + 0xaa8d4);" (assignment_expression "pEVar15 = *(Expr **)(puVar22 + 0xaa8d4)" identifier = (pointer_expression "*(Expr **)(puVar22 + 0xaa8d4)" * (cast_expression "(Expr **)(puVar22 + 0xaa8d4)" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0xaa8d4)" ( (binary_expression "puVar22 + 0xaa8d4" identifier + number_literal) ))))) ;) (expression_statement "pPVar17 = (Parse *)pPVar11->pVdbe;" (assignment_expression "pPVar17 = (Parse *)pPVar11->pVdbe" identifier = (cast_expression "(Parse *)pPVar11->pVdbe" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pPVar11->pVdbe" identifier -> field_identifier))) ;) (expression_statement "iStack_94 = 0;" (assignment_expression "iStack_94 = 0" identifier = number_literal) ;) (expression_statement "pPStack_90 = (Parse *)0x0;" (assignment_expression "pPStack_90 = (Parse *)0x0" identifier = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_8c._0_1_ = pEVar15->op;" (assignment_expression "iStack_8c._0_1_ = pEVar15->op" (field_expression "iStack_8c._0_1_" identifier . field_identifier) = (field_expression "pEVar15->op" identifier -> field_identifier)) ;) (expression_statement "iStack_8c._1_1_ = pEVar15->affinity;" (assignment_expression "iStack_8c._1_1_ = pEVar15->affinity" (field_expression "iStack_8c._1_1_" identifier . field_identifier) = (field_expression "pEVar15->affinity" identifier -> field_identifier)) ;) (expression_statement "iStack_8c._2_2_ = *(undefined2 *)&pEVar15->field_0x2;" (assignment_expression "iStack_8c._2_2_ = *(undefined2 *)&pEVar15->field_0x2" (field_expression "iStack_8c._2_2_" identifier . field_identifier) = (pointer_expression "*(undefined2 *)&pEVar15->field_0x2" * (cast_expression "(undefined2 *)&pEVar15->field_0x2" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar15->field_0x2" & (field_expression "pEVar15->field_0x2" identifier -> field_identifier))))) ;) (expression_statement "pPVar2 = pPVar11;" (assignment_expression "pPVar2 = pPVar11" identifier = identifier) ;) (expression_statement "pPVar24 = pPVar12;" (assignment_expression "pPVar24 = pPVar12" identifier = identifier) ;) (expression_statement "dest_00 = xJump;" (assignment_expression "dest_00 = xJump" identifier = identifier) ;) (expression_statement "pPStack_e8 = unaff_s0;" (assignment_expression "pPStack_e8 = unaff_s0" identifier = identifier) ;) (expression_statement "pPVar14 = pPStack_80;" (assignment_expression "pPVar14 = pPStack_80" identifier = identifier) ;) (expression_statement "pPVar20 = pPStack_70;" (assignment_expression "pPVar20 = pPStack_70" identifier = identifier) ;) (expression_statement "pParse_00 = unaff_s6;" (assignment_expression "pParse_00 = unaff_s6" identifier = identifier) ;) (expression_statement "pPStack_84 = unaff_s0;" (assignment_expression "pPStack_84 = unaff_s0" identifier = identifier) ;) (expression_statement "pPStack_74 = pPVar18;" (assignment_expression "pPStack_74 = pPVar18" identifier = identifier) ;) (expression_statement "pPStack_6c = unaff_s6;" (assignment_expression "pPStack_6c = unaff_s6" identifier = identifier) ;) (expression_statement "pPStack_68 = unaff_s7;" (assignment_expression "pPStack_68 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar25;" (assignment_expression "pcStack_64 = pcVar25" identifier = identifier) ;) (if_statement "if ((pPVar17 == (Parse *)0x0) || (pPStack_e8 = pPVar12, pPVar12 == (Parse *)0x0))\n  goto LAB_000e667c;" if (parenthesized_expression "((pPVar17 == (Parse *)0x0) || (pPStack_e8 = pPVar12, pPVar12 == (Parse *)0x0))" ( (binary_expression "(pPVar17 == (Parse *)0x0) || (pPStack_e8 = pPVar12, pPVar12 == (Parse *)0x0)" (parenthesized_expression "(pPVar17 == (Parse *)0x0)" ( (binary_expression "pPVar17 == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pPStack_e8 = pPVar12, pPVar12 == (Parse *)0x0)" ( (comma_expression "pPStack_e8 = pPVar12, pPVar12 == (Parse *)0x0" (assignment_expression "pPStack_e8 = pPVar12" identifier = identifier) , (binary_expression "pPVar12 == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000e667c;" goto statement_identifier ;)) (expression_statement "uVar3 = (uint)*(byte *)&pPVar12->db;" (assignment_expression "uVar3 = (uint)*(byte *)&pPVar12->db" identifier = (binary_expression "(uint)*(byte *)&pPVar12->db" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&pPVar12->db" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar12->db" & (field_expression "pPVar12->db" identifier -> field_identifier))))) ;) (expression_statement "pParse_00 = (Parse *)(uVar3 ^ 1);" (assignment_expression "pParse_00 = (Parse *)(uVar3 ^ 1)" identifier = (cast_expression "(Parse *)(uVar3 ^ 1)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 ^ 1)" ( (binary_expression "uVar3 ^ 1" identifier ^ number_literal) )))) ;) (if_statement "if (uVar3 == 0x31) {\n    if ((Parse *)jumpIfNull == (Parse *)0x0) {\n      pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n      pPVar11->nLabel = (int)pPVar18;\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18);\n      pPVar12 = pPVar18;\nLAB_000e6640:\n      pPVar2 = pPVar17;\n      (*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))(pPVar17,pPVar18);\n    }\n    else {\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump);\n    }\n    goto LAB_000e6654;\n  }" if (parenthesized_expression "(uVar3 == 0x31)" ( (binary_expression "uVar3 == 0x31" identifier == number_literal) )) (compound_statement "{\n    if ((Parse *)jumpIfNull == (Parse *)0x0) {\n      pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n      pPVar11->nLabel = (int)pPVar18;\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18);\n      pPVar12 = pPVar18;\nLAB_000e6640:\n      pPVar2 = pPVar17;\n      (*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))(pPVar17,pPVar18);\n    }\n    else {\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump);\n    }\n    goto LAB_000e6654;\n  }" { (if_statement "if ((Parse *)jumpIfNull == (Parse *)0x0) {\n      pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n      pPVar11->nLabel = (int)pPVar18;\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18);\n      pPVar12 = pPVar18;\nLAB_000e6640:\n      pPVar2 = pPVar17;\n      (*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))(pPVar17,pPVar18);\n    }\n    else {\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump);\n    }" if (parenthesized_expression "((Parse *)jumpIfNull == (Parse *)0x0)" ( (binary_expression "(Parse *)jumpIfNull == (Parse *)0x0" (cast_expression "(Parse *)jumpIfNull" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n      pPVar11->nLabel = (int)pPVar18;\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18);\n      pPVar12 = pPVar18;\nLAB_000e6640:\n      pPVar2 = pPVar17;\n      (*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))(pPVar17,pPVar18);\n    }" { (expression_statement "pPVar18 = (Parse *)(pPVar11->nLabel + -1);" (assignment_expression "pPVar18 = (Parse *)(pPVar11->nLabel + -1)" identifier = (cast_expression "(Parse *)(pPVar11->nLabel + -1)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pPVar11->nLabel + -1)" ( (binary_expression "pPVar11->nLabel + -1" (field_expression "pPVar11->nLabel" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pPVar11->nLabel = (int)pPVar18;" (assignment_expression "pPVar11->nLabel = (int)pPVar18" (field_expression "pPVar11->nLabel" identifier -> field_identifier) = (cast_expression "(int)pPVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18);" (call_expression "sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18)" identifier (argument_list "(pPVar11,(Expr *)pPVar12,(int)xJump,(int)pPVar18)" ( identifier , (cast_expression "(Expr *)pPVar12" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)xJump" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pPVar18" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "pPVar12 = pPVar18;" (assignment_expression "pPVar12 = pPVar18" identifier = identifier) ;) (labeled_statement "LAB_000e6640:\n      pPVar2 = pPVar17;" statement_identifier : (expression_statement "pPVar2 = pPVar17;" (assignment_expression "pPVar2 = pPVar17" identifier = identifier) ;)) (expression_statement "(*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))(pPVar17,pPVar18);" (call_expression "(*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))(pPVar17,pPVar18)" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78))" ( (pointer_expression "*(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78)" * (cast_expression "(code *)(*(int *)(puVar22 + 0xaa670) + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0xaa670) + 0xd78)" ( (binary_expression "*(int *)(puVar22 + 0xaa670) + 0xd78" (pointer_expression "*(int *)(puVar22 + 0xaa670)" * (cast_expression "(int *)(puVar22 + 0xaa670)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa670)" ( (binary_expression "puVar22 + 0xaa670" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pPVar17,pPVar18)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump);\n    }" else (compound_statement "{\n      sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump);\n    }" { (expression_statement "sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump);" (call_expression "sqlite3ExprCodeIN(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump)" identifier (argument_list "(pPVar11,(Expr *)pPVar12,(int)xJump,(int)xJump)" ( identifier , (cast_expression "(Expr *)pPVar12" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)xJump" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)xJump" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (goto_statement "goto LAB_000e6654;" goto statement_identifier ;) })) (if_statement "if (uVar3 < 0x32) {\n    if (uVar3 == 0x2c) {\n      pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550);\n      sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n      sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n    }\n    else if (uVar3 < 0x2d) {\n      if (uVar3 != 0x13) {\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }\n      sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n    }\n    else {\n      if (uVar3 == 0x2d) goto LAB_000e67d0;\n      if (uVar3 != 0x30) goto LAB_000e6898;\n      dest_00 = (Parse *)&pPVar12->isMultiWrite;\n      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);\n    }\nLAB_000e6654:\n    iVar23 = *(int *)(puVar22 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pPVar2 = pPVar11;\n      (*(code *)(iVar23 + -0x4854))();\n    }\n  }\n  else {\n    pPVar18 = pParse_00;\n    if (uVar3 < 0x3a) {\n      if (0x33 < uVar3) {\nLAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;\n        uVar8 = pExpr_00->op;\n        if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }\n        if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }\n        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);\n        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);\n        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);\n        dest_00 = *(Parse **)&pPVar12->colNamesSet;\n        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);\n        if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94);\n    }\n    else {\n      if (uVar3 == 0x9c) {\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      if (uVar3 == 0xa3) {\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);\n      if (iVar23 == 0) {\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }\n      else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }\n    }\n    pPVar2 = pPVar17;\n    (*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc))(pPVar17,pParse_00,dest_00,xJump);\n    pParse_00 = pPVar18;\n    if (iStack_94 != 0) {\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" if (parenthesized_expression "(uVar3 < 0x32)" ( (binary_expression "uVar3 < 0x32" identifier < number_literal) )) (compound_statement "{\n    if (uVar3 == 0x2c) {\n      pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550);\n      sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n      sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n    }\n    else if (uVar3 < 0x2d) {\n      if (uVar3 != 0x13) {\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }\n      sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n    }\n    else {\n      if (uVar3 == 0x2d) goto LAB_000e67d0;\n      if (uVar3 != 0x30) goto LAB_000e6898;\n      dest_00 = (Parse *)&pPVar12->isMultiWrite;\n      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);\n    }\nLAB_000e6654:\n    iVar23 = *(int *)(puVar22 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pPVar2 = pPVar11;\n      (*(code *)(iVar23 + -0x4854))();\n    }\n  }" { (if_statement "if (uVar3 == 0x2c) {\n      pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550);\n      sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n      sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n    }\n    else if (uVar3 < 0x2d) {\n      if (uVar3 != 0x13) {\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }\n      sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n    }\n    else {\n      if (uVar3 == 0x2d) goto LAB_000e67d0;\n      if (uVar3 != 0x30) goto LAB_000e6898;\n      dest_00 = (Parse *)&pPVar12->isMultiWrite;\n      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);\n    }" if (parenthesized_expression "(uVar3 == 0x2c)" ( (binary_expression "uVar3 == 0x2c" identifier == number_literal) )) (compound_statement "{\n      pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550);\n      sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n      sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n    }" { (expression_statement "pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550);" (assignment_expression "pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550)" identifier = (cast_expression "(Parse *)(*(int *)(puVar22 + 0xaa680) + 0x6550)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0xaa680) + 0x6550)" ( (binary_expression "*(int *)(puVar22 + 0xaa680) + 0x6550" (pointer_expression "*(int *)(puVar22 + 0xaa680)" * (cast_expression "(int *)(puVar22 + 0xaa680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa680)" ( (binary_expression "puVar22 + 0xaa680" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);" (call_expression "sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull)" identifier (argument_list "(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull)" ( identifier , (cast_expression "(Expr *)pPVar12->rc" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pPVar12->rc" identifier -> field_identifier)) , (cast_expression "(int)xJump" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);" (call_expression "sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull)" identifier (argument_list "(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull)" ( identifier , (pointer_expression "*(Expr **)&pPVar12->colNamesSet" * (cast_expression "(Expr **)&pPVar12->colNamesSet" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pPVar12->colNamesSet" & (field_expression "pPVar12->colNamesSet" identifier -> field_identifier)))) , (cast_expression "(int)xJump" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) }) (else_clause "else if (uVar3 < 0x2d) {\n      if (uVar3 != 0x13) {\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }\n      sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n    }\n    else {\n      if (uVar3 == 0x2d) goto LAB_000e67d0;\n      if (uVar3 != 0x30) goto LAB_000e6898;\n      dest_00 = (Parse *)&pPVar12->isMultiWrite;\n      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);\n    }" else (if_statement "if (uVar3 < 0x2d) {\n      if (uVar3 != 0x13) {\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }\n      sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n    }\n    else {\n      if (uVar3 == 0x2d) goto LAB_000e67d0;\n      if (uVar3 != 0x30) goto LAB_000e6898;\n      dest_00 = (Parse *)&pPVar12->isMultiWrite;\n      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);\n    }" if (parenthesized_expression "(uVar3 < 0x2d)" ( (binary_expression "uVar3 < 0x2d" identifier < number_literal) )) (compound_statement "{\n      if (uVar3 != 0x13) {\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }\n      sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);\n    }" { (if_statement "if (uVar3 != 0x13) {\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }" if (parenthesized_expression "(uVar3 != 0x13)" ( (binary_expression "uVar3 != 0x13" identifier != number_literal) )) (compound_statement "{\n        if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);\n        pPVar18 = pParse_00;\n        goto LAB_000e689c;\n      }" { (if_statement "if (uVar3 == 0x2b) {\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }" if (parenthesized_expression "(uVar3 == 0x2b)" ( (binary_expression "uVar3 == 0x2b" identifier == number_literal) )) (compound_statement "{\n          pPVar18 = (Parse *)(pPVar11->nLabel + -1);\n          pPVar11->nLabel = (int)pPVar18;\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);\n          sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);\n          pParse_00 = pPVar18;\n          goto LAB_000e6640;\n        }" { (expression_statement "pPVar18 = (Parse *)(pPVar11->nLabel + -1);" (assignment_expression "pPVar18 = (Parse *)(pPVar11->nLabel + -1)" identifier = (cast_expression "(Parse *)(pPVar11->nLabel + -1)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pPVar11->nLabel + -1)" ( (binary_expression "pPVar11->nLabel + -1" (field_expression "pPVar11->nLabel" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pPVar11->nLabel = (int)pPVar18;" (assignment_expression "pPVar11->nLabel = (int)pPVar18" (field_expression "pPVar11->nLabel" identifier -> field_identifier) = (cast_expression "(int)pPVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10);" (call_expression "sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10)" identifier (argument_list "(pPVar11,(Expr *)pPVar12->rc,(int)pPVar18,jumpIfNull ^ 0x10)" ( identifier , (cast_expression "(Expr *)pPVar12->rc" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pPVar12->rc" identifier -> field_identifier)) , (cast_expression "(int)pPVar18" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "jumpIfNull ^ 0x10" identifier ^ number_literal) ))) ;) (expression_statement "sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull);" (call_expression "sqlite3ExprIfFalse(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull)" identifier (argument_list "(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int)xJump,jumpIfNull)" ( identifier , (pointer_expression "*(Expr **)&pPVar12->colNamesSet" * (cast_expression "(Expr **)&pPVar12->colNamesSet" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pPVar12->colNamesSet" & (field_expression "pPVar12->colNamesSet" identifier -> field_identifier)))) , (cast_expression "(int)xJump" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "pParse_00 = pPVar18;" (assignment_expression "pParse_00 = pPVar18" identifier = identifier) ;) (goto_statement "goto LAB_000e6640;" goto statement_identifier ;) })) (labeled_statement "LAB_000e6898:\n        iVar23 = *(int *)(puVar22 + 0xaa654);" statement_identifier : (expression_statement "iVar23 = *(int *)(puVar22 + 0xaa654);" (assignment_expression "iVar23 = *(int *)(puVar22 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar22 + 0xaa654)" * (cast_expression "(int *)(puVar22 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa654)" ( (binary_expression "puVar22 + 0xaa654" identifier + number_literal) ))))) ;)) (expression_statement "pPVar18 = pParse_00;" (assignment_expression "pPVar18 = pParse_00" identifier = identifier) ;) (goto_statement "goto LAB_000e689c;" goto statement_identifier ;) })) (expression_statement "sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull);" (call_expression "sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull)" identifier (argument_list "(pPVar11,(Expr *)pPVar12->rc,(int)xJump,jumpIfNull)" ( identifier , (cast_expression "(Expr *)pPVar12->rc" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pPVar12->rc" identifier -> field_identifier)) , (cast_expression "(int)xJump" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) }) (else_clause "else {\n      if (uVar3 == 0x2d) goto LAB_000e67d0;\n      if (uVar3 != 0x30) goto LAB_000e6898;\n      dest_00 = (Parse *)&pPVar12->isMultiWrite;\n      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);\n    }" else (compound_statement "{\n      if (uVar3 == 0x2d) goto LAB_000e67d0;\n      if (uVar3 != 0x30) goto LAB_000e6898;\n      dest_00 = (Parse *)&pPVar12->isMultiWrite;\n      exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);\n    }" { (if_statement "if (uVar3 == 0x2d) goto LAB_000e67d0;" if (parenthesized_expression "(uVar3 == 0x2d)" ( (binary_expression "uVar3 == 0x2d" identifier == number_literal) )) (goto_statement "goto LAB_000e67d0;" goto statement_identifier ;)) (if_statement "if (uVar3 != 0x30) goto LAB_000e6898;" if (parenthesized_expression "(uVar3 != 0x30)" ( (binary_expression "uVar3 != 0x30" identifier != number_literal) )) (goto_statement "goto LAB_000e6898;" goto statement_identifier ;)) (expression_statement "dest_00 = (Parse *)&pPVar12->isMultiWrite;" (assignment_expression "dest_00 = (Parse *)&pPVar12->isMultiWrite" identifier = (cast_expression "(Parse *)&pPVar12->isMultiWrite" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar12->isMultiWrite" & (field_expression "pPVar12->isMultiWrite" identifier -> field_identifier)))) ;) (expression_statement "exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull);" (call_expression "exprCodeBetween(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull)" identifier (argument_list "(pPVar11,(Expr *)&pPVar12->rc,(int)dest_00,\n                      (_func_void_Parse_ptr_Expr_ptr_int_int *)xJump,\n                      *(int *)(puVar22 + 0xaa680) + 0x6550,(Expr *)jumpIfNull)" ( identifier , (cast_expression "(Expr *)&pPVar12->rc" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar12->rc" & (field_expression "pPVar12->rc" identifier -> field_identifier))) , (cast_expression "(int)dest_00" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(_func_void_Parse_ptr_Expr_ptr_int_int *)xJump" ( (type_descriptor "_func_void_Parse_ptr_Expr_ptr_int_int *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "*(int *)(puVar22 + 0xaa680) + 0x6550" (pointer_expression "*(int *)(puVar22 + 0xaa680)" * (cast_expression "(int *)(puVar22 + 0xaa680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa680)" ( (binary_expression "puVar22 + 0xaa680" identifier + number_literal) )))) + number_literal) , (cast_expression "(Expr *)jumpIfNull" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))))) (labeled_statement "LAB_000e6654:\n    iVar23 = *(int *)(puVar22 + 0xaa654);" statement_identifier : (expression_statement "iVar23 = *(int *)(puVar22 + 0xaa654);" (assignment_expression "iVar23 = *(int *)(puVar22 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar22 + 0xaa654)" * (cast_expression "(int *)(puVar22 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa654)" ( (binary_expression "puVar22 + 0xaa654" identifier + number_literal) ))))) ;)) (if_statement "if (iStack_94 != 0) {\nLAB_000e6660:\n      pPVar2 = pPVar11;\n      (*(code *)(iVar23 + -0x4854))();\n    }" if (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000e6660:\n      pPVar2 = pPVar11;\n      (*(code *)(iVar23 + -0x4854))();\n    }" { (labeled_statement "LAB_000e6660:\n      pPVar2 = pPVar11;" statement_identifier : (expression_statement "pPVar2 = pPVar11;" (assignment_expression "pPVar2 = pPVar11" identifier = identifier) ;)) (expression_statement "(*(code *)(iVar23 + -0x4854))();" (call_expression "(*(code *)(iVar23 + -0x4854))()" (parenthesized_expression "(*(code *)(iVar23 + -0x4854))" ( (pointer_expression "*(code *)(iVar23 + -0x4854)" * (cast_expression "(code *)(iVar23 + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x4854)" ( (binary_expression "iVar23 + -0x4854" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n    pPVar18 = pParse_00;\n    if (uVar3 < 0x3a) {\n      if (0x33 < uVar3) {\nLAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;\n        uVar8 = pExpr_00->op;\n        if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }\n        if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }\n        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);\n        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);\n        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);\n        dest_00 = *(Parse **)&pPVar12->colNamesSet;\n        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);\n        if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94);\n    }\n    else {\n      if (uVar3 == 0x9c) {\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      if (uVar3 == 0xa3) {\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);\n      if (iVar23 == 0) {\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }\n      else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }\n    }\n    pPVar2 = pPVar17;\n    (*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc))(pPVar17,pParse_00,dest_00,xJump);\n    pParse_00 = pPVar18;\n    if (iStack_94 != 0) {\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" else (compound_statement "{\n    pPVar18 = pParse_00;\n    if (uVar3 < 0x3a) {\n      if (0x33 < uVar3) {\nLAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;\n        uVar8 = pExpr_00->op;\n        if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }\n        if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }\n        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);\n        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);\n        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);\n        dest_00 = *(Parse **)&pPVar12->colNamesSet;\n        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);\n        if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94);\n    }\n    else {\n      if (uVar3 == 0x9c) {\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      if (uVar3 == 0xa3) {\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);\n      if (iVar23 == 0) {\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }\n      else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }\n    }\n    pPVar2 = pPVar17;\n    (*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc))(pPVar17,pParse_00,dest_00,xJump);\n    pParse_00 = pPVar18;\n    if (iStack_94 != 0) {\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" { (expression_statement "pPVar18 = pParse_00;" (assignment_expression "pPVar18 = pParse_00" identifier = identifier) ;) (if_statement "if (uVar3 < 0x3a) {\n      if (0x33 < uVar3) {\nLAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;\n        uVar8 = pExpr_00->op;\n        if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }\n        if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }\n        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);\n        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);\n        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);\n        dest_00 = *(Parse **)&pPVar12->colNamesSet;\n        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);\n        if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94);\n    }\n    else {\n      if (uVar3 == 0x9c) {\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      if (uVar3 == 0xa3) {\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);\n      if (iVar23 == 0) {\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }\n      else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }\n    }" if (parenthesized_expression "(uVar3 < 0x3a)" ( (binary_expression "uVar3 < 0x3a" identifier < number_literal) )) (compound_statement "{\n      if (0x33 < uVar3) {\nLAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;\n        uVar8 = pExpr_00->op;\n        if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }\n        if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }\n        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);\n        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);\n        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);\n        dest_00 = *(Parse **)&pPVar12->colNamesSet;\n        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);\n        if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94);\n    }" { (if_statement "if (0x33 < uVar3) {\nLAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;\n        uVar8 = pExpr_00->op;\n        if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }\n        if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }\n        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);\n        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);\n        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);\n        dest_00 = *(Parse **)&pPVar12->colNamesSet;\n        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);\n        if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }" if (parenthesized_expression "(0x33 < uVar3)" ( (binary_expression "0x33 < uVar3" number_literal < identifier) )) (compound_statement "{\nLAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;\n        uVar8 = pExpr_00->op;\n        if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }\n        if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }\n        pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);\n        unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);\n        sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);\n        dest_00 = *(Parse **)&pPVar12->colNamesSet;\n        (*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);\n        if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }" { (labeled_statement "LAB_000e67e4:\n        pExpr_00 = (Expr *)pPVar12->rc;" statement_identifier : (expression_statement "pExpr_00 = (Expr *)pPVar12->rc;" (assignment_expression "pExpr_00 = (Expr *)pPVar12->rc" identifier = (cast_expression "(Expr *)pPVar12->rc" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pPVar12->rc" identifier -> field_identifier))) ;)) (expression_statement "uVar8 = pExpr_00->op;" (assignment_expression "uVar8 = pExpr_00->op" identifier = (field_expression "pExpr_00->op" identifier -> field_identifier)) ;) (if_statement "if (uVar8 == 0xa4) {\n          uVar8 = pExpr_00->op2;\n        }" if (parenthesized_expression "(uVar8 == 0xa4)" ( (binary_expression "uVar8 == 0xa4" identifier == number_literal) )) (compound_statement "{\n          uVar8 = pExpr_00->op2;\n        }" { (expression_statement "uVar8 = pExpr_00->op2;" (assignment_expression "uVar8 = pExpr_00->op2" identifier = (field_expression "pExpr_00->op2" identifier -> field_identifier)) ;) })) (if_statement "if (uVar8 == 0xa5) {\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }\n        else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }" if (parenthesized_expression "(uVar8 == 0xa5)" ( (binary_expression "uVar8 == 0xa5" identifier == number_literal) )) (compound_statement "{\n          iVar23 = ((pExpr_00->x).pList)->nExpr;\nLAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;\n        }" { (expression_statement "iVar23 = ((pExpr_00->x).pList)->nExpr;" (assignment_expression "iVar23 = ((pExpr_00->x).pList)->nExpr" identifier = (field_expression "((pExpr_00->x).pList)->nExpr" (parenthesized_expression "((pExpr_00->x).pList)" ( (field_expression "(pExpr_00->x).pList" (parenthesized_expression "(pExpr_00->x)" ( (field_expression "pExpr_00->x" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (labeled_statement "LAB_000e688c:\n          if (1 < iVar23) goto LAB_000e6898;" statement_identifier : (if_statement "if (1 < iVar23) goto LAB_000e6898;" if (parenthesized_expression "(1 < iVar23)" ( (binary_expression "1 < iVar23" number_literal < identifier) )) (goto_statement "goto LAB_000e6898;" goto statement_identifier ;))) }) (else_clause "else if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }" else (if_statement "if (uVar8 == '\x7f') {\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }" if (parenthesized_expression "(uVar8 == '\x7f')" ( (binary_expression "uVar8 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n          iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;\n          goto LAB_000e688c;\n        }" { (expression_statement "iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr;" (assignment_expression "iVar23 = ((pExpr_00->x).pSelect)->pEList->nExpr" identifier = (field_expression "((pExpr_00->x).pSelect)->pEList->nExpr" (field_expression "((pExpr_00->x).pSelect)->pEList" (parenthesized_expression "((pExpr_00->x).pSelect)" ( (field_expression "(pExpr_00->x).pSelect" (parenthesized_expression "(pExpr_00->x)" ( (field_expression "pExpr_00->x" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier)) ;) (goto_statement "goto LAB_000e688c;" goto statement_identifier ;) })))) (expression_statement "pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8);" (assignment_expression "pPVar17 = (Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8)" identifier = (cast_expression "(Parse *)(*(int *)(puVar22 + 0xaa708) + -0x57b8)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0xaa708) + -0x57b8)" ( (binary_expression "*(int *)(puVar22 + 0xaa708) + -0x57b8" (pointer_expression "*(int *)(puVar22 + 0xaa708)" * (cast_expression "(int *)(puVar22 + 0xaa708)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa708)" ( (binary_expression "puVar22 + 0xaa708" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94);" (assignment_expression "unaff_s7 = (Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94)" identifier = (cast_expression "(Parse *)sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3ExprCodeTemp(pPVar11,pExpr_00,&iStack_94)" identifier (argument_list "(pPVar11,pExpr_00,&iStack_94)" ( identifier , identifier , (pointer_expression "&iStack_94" & identifier) ))))) ;) (expression_statement "sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90);" (call_expression "sqlite3ExprCodeTemp(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90)" identifier (argument_list "(pPVar11,*(Expr **)&pPVar12->colNamesSet,(int *)&pPStack_90)" ( identifier , (pointer_expression "*(Expr **)&pPVar12->colNamesSet" * (cast_expression "(Expr **)&pPVar12->colNamesSet" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pPVar12->colNamesSet" & (field_expression "pPVar12->colNamesSet" identifier -> field_identifier)))) , (cast_expression "(int *)&pPStack_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPStack_90" & identifier)) ))) ;) (expression_statement "dest_00 = *(Parse **)&pPVar12->colNamesSet;" (assignment_expression "dest_00 = *(Parse **)&pPVar12->colNamesSet" identifier = (pointer_expression "*(Parse **)&pPVar12->colNamesSet" * (cast_expression "(Parse **)&pPVar12->colNamesSet" ( (type_descriptor "Parse **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pPVar12->colNamesSet" & (field_expression "pPVar12->colNamesSet" identifier -> field_identifier))))) ;) (expression_statement "(*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00);" (call_expression "(*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))(pPVar11,pPVar12->rc,dest_00,pParse_00)" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc))" ( (pointer_expression "*(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc)" * (cast_expression "(code *)(*(int *)(puVar22 + 0xaa674) + -0x59dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0xaa674) + -0x59dc)" ( (binary_expression "*(int *)(puVar22 + 0xaa674) + -0x59dc" (pointer_expression "*(int *)(puVar22 + 0xaa674)" * (cast_expression "(int *)(puVar22 + 0xaa674)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa674)" ( (binary_expression "puVar22 + 0xaa674" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pPVar11,pPVar12->rc,dest_00,pParse_00)" ( identifier , (field_expression "pPVar12->rc" identifier -> field_identifier) , identifier , identifier ))) ;) (if_statement "if (iStack_94 != 0) {\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }" if (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar23 = *(int *)(puVar22 + 0xaa654);\n          goto LAB_000e6660;\n        }" { (expression_statement "iVar23 = *(int *)(puVar22 + 0xaa654);" (assignment_expression "iVar23 = *(int *)(puVar22 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar22 + 0xaa654)" * (cast_expression "(int *)(puVar22 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa654)" ( (binary_expression "puVar22 + 0xaa654" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000e6660;" goto statement_identifier ;) })) (goto_statement "goto LAB_000e6670;" goto statement_identifier ;) })) (expression_statement "dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94);" (assignment_expression "dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94)" identifier = (cast_expression "(Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12->rc,&iStack_94)" identifier (argument_list "(pPVar11,(Expr *)pPVar12->rc,&iStack_94)" ( identifier , (cast_expression "(Expr *)pPVar12->rc" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pPVar12->rc" identifier -> field_identifier)) , (pointer_expression "&iStack_94" & identifier) ))))) ;) }) (else_clause "else {\n      if (uVar3 == 0x9c) {\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      if (uVar3 == 0xa3) {\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);\n      if (iVar23 == 0) {\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }\n      else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }\n    }" else (compound_statement "{\n      if (uVar3 == 0x9c) {\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      if (uVar3 == 0xa3) {\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);\n      if (iVar23 == 0) {\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }\n      else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }\n    }" { (if_statement "if (uVar3 == 0x9c) {\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }" if (parenthesized_expression "(uVar3 == 0x9c)" ( (binary_expression "uVar3 == 0x9c" identifier == number_literal) )) (compound_statement "{\nLAB_000e67d0:\n        pParse_00 = (Parse *)0x34;\n        if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }\n        jumpIfNull = 0x80;\n        goto LAB_000e67e4;\n      }" { (labeled_statement "LAB_000e67d0:\n        pParse_00 = (Parse *)0x34;" statement_identifier : (expression_statement "pParse_00 = (Parse *)0x34;" (assignment_expression "pParse_00 = (Parse *)0x34" identifier = (cast_expression "(Parse *)0x34" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (uVar3 != 0x2d) {\n          pParse_00 = (Parse *)0x35;\n        }" if (parenthesized_expression "(uVar3 != 0x2d)" ( (binary_expression "uVar3 != 0x2d" identifier != number_literal) )) (compound_statement "{\n          pParse_00 = (Parse *)0x35;\n        }" { (expression_statement "pParse_00 = (Parse *)0x35;" (assignment_expression "pParse_00 = (Parse *)0x35" identifier = (cast_expression "(Parse *)0x35" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "jumpIfNull = 0x80;" (assignment_expression "jumpIfNull = 0x80" identifier = number_literal) ;) (goto_statement "goto LAB_000e67e4;" goto statement_identifier ;) })) (expression_statement "iVar23 = *(int *)(puVar22 + 0xaa654);" (assignment_expression "iVar23 = *(int *)(puVar22 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar22 + 0xaa654)" * (cast_expression "(int *)(puVar22 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa654)" ( (binary_expression "puVar22 + 0xaa654" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0xa3) {\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }" if (parenthesized_expression "(uVar3 == 0xa3)" ( (binary_expression "uVar3 == 0xa3" identifier == number_literal) )) (compound_statement "{\n        bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;\n        if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        goto LAB_000e6654;\n      }" { (expression_statement "bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c;" (assignment_expression "bVar9 = *(byte *)&pPVar12->nTab ^ 0x9c" identifier = (binary_expression "*(byte *)&pPVar12->nTab ^ 0x9c" (pointer_expression "*(byte *)&pPVar12->nTab" * (cast_expression "(byte *)&pPVar12->nTab" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar12->nTab" & (field_expression "pPVar12->nTab" identifier -> field_identifier)))) ^ number_literal)) ;) (if_statement "if ((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')) {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }\n        else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }" if (parenthesized_expression "((bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0'))" ( (binary_expression "(bVar9 == 0) == (*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')" (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) == (parenthesized_expression "(*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4)" ( (binary_expression "*(int *)(*(int *)&pPVar12->colNamesSet + 8) + 4" (pointer_expression "*(int *)(*(int *)&pPVar12->colNamesSet + 8)" * (cast_expression "(int *)(*(int *)&pPVar12->colNamesSet + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)&pPVar12->colNamesSet + 8)" ( (binary_expression "*(int *)&pPVar12->colNamesSet + 8" (pointer_expression "*(int *)&pPVar12->colNamesSet" * (cast_expression "(int *)&pPVar12->colNamesSet" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar12->colNamesSet" & (field_expression "pPVar12->colNamesSet" identifier -> field_identifier)))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }" { (expression_statement "iVar23 = 0x10;" (assignment_expression "iVar23 = 0x10" identifier = number_literal) ;) (if_statement "if (bVar9 == 0) {\n            iVar23 = 0;\n          }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar23 = 0;\n          }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) })) (expression_statement "sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);" (call_expression "sqlite3ExprIfTrue(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23)" identifier (argument_list "(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23)" ( identifier , (cast_expression "(Expr *)pPVar12->rc" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pPVar12->rc" identifier -> field_identifier)) , (cast_expression "(int)xJump" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) }) (else_clause "else {\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }" else (compound_statement "{\n          iVar23 = 0x10;\n          if (bVar9 == 0) {\n            iVar23 = 0;\n          }\n          sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);\n        }" { (expression_statement "iVar23 = 0x10;" (assignment_expression "iVar23 = 0x10" identifier = number_literal) ;) (if_statement "if (bVar9 == 0) {\n            iVar23 = 0;\n          }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar23 = 0;\n          }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) })) (expression_statement "sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23);" (call_expression "sqlite3ExprIfFalse(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23)" identifier (argument_list "(pPVar11,(Expr *)pPVar12->rc,(int)xJump,iVar23)" ( identifier , (cast_expression "(Expr *)pPVar12->rc" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pPVar12->rc" identifier -> field_identifier)) , (cast_expression "(int)xJump" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) }))) (goto_statement "goto LAB_000e6654;" goto statement_identifier ;) })) (labeled_statement "LAB_000e689c:\n      iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);" statement_identifier : (expression_statement "iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12);" (assignment_expression "iVar23 = (*(code *)(iVar23 + -0x4e14))(pPVar12)" identifier = (call_expression "(*(code *)(iVar23 + -0x4e14))(pPVar12)" (parenthesized_expression "(*(code *)(iVar23 + -0x4e14))" ( (pointer_expression "*(code *)(iVar23 + -0x4e14)" * (cast_expression "(code *)(iVar23 + -0x4e14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x4e14)" ( (binary_expression "iVar23 + -0x4e14" identifier + number_literal) )))) )) (argument_list "(pPVar12)" ( identifier )))) ;)) (if_statement "if (iVar23 == 0) {\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }\n      else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        pPVar2 = pPVar12;\n        iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();\n        pParse_00 = pPVar18;\n        if (iVar23 != 0) goto LAB_000e6654;\n        jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);\n        dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);\n        pParse_00 = (Parse *)&DAT_00000014;\n      }" { (expression_statement "pPVar2 = pPVar12;" (assignment_expression "pPVar2 = pPVar12" identifier = identifier) ;) (expression_statement "iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))();" (assignment_expression "iVar23 = (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))()" identifier = (call_expression "(*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))()" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c))" ( (pointer_expression "*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c)" * (cast_expression "(code *)(*(int *)(puVar22 + 0xaa654) + -0x4d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0xaa654) + -0x4d8c)" ( (binary_expression "*(int *)(puVar22 + 0xaa654) + -0x4d8c" (pointer_expression "*(int *)(puVar22 + 0xaa654)" * (cast_expression "(int *)(puVar22 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa654)" ( (binary_expression "puVar22 + 0xaa654" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "pParse_00 = pPVar18;" (assignment_expression "pParse_00 = pPVar18" identifier = identifier) ;) (if_statement "if (iVar23 != 0) goto LAB_000e6654;" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000e6654;" goto statement_identifier ;)) (expression_statement "jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0);" (assignment_expression "jumpIfNull = (int)((Parse *)jumpIfNull != (Parse *)0x0)" identifier = (cast_expression "(int)((Parse *)jumpIfNull != (Parse *)0x0)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((Parse *)jumpIfNull != (Parse *)0x0)" ( (binary_expression "(Parse *)jumpIfNull != (Parse *)0x0" (cast_expression "(Parse *)jumpIfNull" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94);" (assignment_expression "dest_00 = (Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94)" identifier = (cast_expression "(Parse *)sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3ExprCodeTemp(pPVar11,(Expr *)pPVar12,&iStack_94)" identifier (argument_list "(pPVar11,(Expr *)pPVar12,&iStack_94)" ( identifier , (cast_expression "(Expr *)pPVar12" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&iStack_94" & identifier) ))))) ;) (expression_statement "pParse_00 = (Parse *)&DAT_00000014;" (assignment_expression "pParse_00 = (Parse *)&DAT_00000014" identifier = (cast_expression "(Parse *)&DAT_00000014" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000014" & identifier))) ;) }) (else_clause "else {\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }" else (compound_statement "{\n        dest_00 = (Parse *)0x0;\n        pParse_00 = (Parse *)&DAT_0000000b;\n      }" { (expression_statement "dest_00 = (Parse *)0x0;" (assignment_expression "dest_00 = (Parse *)0x0" identifier = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pParse_00 = (Parse *)&DAT_0000000b;" (assignment_expression "pParse_00 = (Parse *)&DAT_0000000b" identifier = (cast_expression "(Parse *)&DAT_0000000b" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000b" & identifier))) ;) }))) }))) (expression_statement "pPVar2 = pPVar17;" (assignment_expression "pPVar2 = pPVar17" identifier = identifier) ;) (expression_statement "(*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc))(pPVar17,pParse_00,dest_00,xJump);" (call_expression "(*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc))(pPVar17,pParse_00,dest_00,xJump)" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc))" ( (pointer_expression "*(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc)" * (cast_expression "(code *)(*(int *)(puVar22 + 0xaa670) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0xaa670) + 0x10fc)" ( (binary_expression "*(int *)(puVar22 + 0xaa670) + 0x10fc" (pointer_expression "*(int *)(puVar22 + 0xaa670)" * (cast_expression "(int *)(puVar22 + 0xaa670)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa670)" ( (binary_expression "puVar22 + 0xaa670" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pPVar17,pParse_00,dest_00,xJump)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pParse_00 = pPVar18;" (assignment_expression "pParse_00 = pPVar18" identifier = identifier) ;) (if_statement "if (iStack_94 != 0) {\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      goto LAB_000e6660;\n    }" if (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar23 = *(int *)(puVar22 + 0xaa654);\n      goto LAB_000e6660;\n    }" { (expression_statement "iVar23 = *(int *)(puVar22 + 0xaa654);" (assignment_expression "iVar23 = *(int *)(puVar22 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar22 + 0xaa654)" * (cast_expression "(int *)(puVar22 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa654)" ( (binary_expression "puVar22 + 0xaa654" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000e6660;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000e6670:\n  pPVar24 = pPStack_90;" statement_identifier : (expression_statement "pPVar24 = pPStack_90;" (assignment_expression "pPVar24 = pPStack_90" identifier = identifier) ;)) (expression_statement "pPStack_e8 = pPVar12;" (assignment_expression "pPStack_e8 = pPVar12" identifier = identifier) ;) (expression_statement "pPVar14 = pPVar11;" (assignment_expression "pPVar14 = pPVar11" identifier = identifier) ;) (expression_statement "pPVar18 = (Parse *)jumpIfNull;" (assignment_expression "pPVar18 = (Parse *)jumpIfNull" identifier = (cast_expression "(Parse *)jumpIfNull" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pPVar20 = xJump;" (assignment_expression "pPVar20 = xJump" identifier = identifier) ;) (if_statement "if (pPStack_90 != (Parse *)0x0) {\n    pPVar2 = pPVar11;\n    (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854))();\n  }" if (parenthesized_expression "(pPStack_90 != (Parse *)0x0)" ( (binary_expression "pPStack_90 != (Parse *)0x0" identifier != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pPVar2 = pPVar11;\n    (*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854))();\n  }" { (expression_statement "pPVar2 = pPVar11;" (assignment_expression "pPVar2 = pPVar11" identifier = identifier) ;) (expression_statement "(*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854))();" (call_expression "(*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854))()" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854))" ( (pointer_expression "*(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854)" * (cast_expression "(code *)(*(int *)(puVar22 + 0xaa654) + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0xaa654) + -0x4854)" ( (binary_expression "*(int *)(puVar22 + 0xaa654) + -0x4854" (pointer_expression "*(int *)(puVar22 + 0xaa654)" * (cast_expression "(int *)(puVar22 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xaa654)" ( (binary_expression "puVar22 + 0xaa654" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_000e667c:\n  iVar23._0_1_ = pEVar15->op;" statement_identifier : (expression_statement "iVar23._0_1_ = pEVar15->op;" (assignment_expression "iVar23._0_1_ = pEVar15->op" (field_expression "iVar23._0_1_" identifier . field_identifier) = (field_expression "pEVar15->op" identifier -> field_identifier)) ;)) (expression_statement "iVar23._1_1_ = pEVar15->affinity;" (assignment_expression "iVar23._1_1_ = pEVar15->affinity" (field_expression "iVar23._1_1_" identifier . field_identifier) = (field_expression "pEVar15->affinity" identifier -> field_identifier)) ;) (expression_statement "iVar23._2_2_ = *(undefined2 *)&pEVar15->field_0x2;" (assignment_expression "iVar23._2_2_ = *(undefined2 *)&pEVar15->field_0x2" (field_expression "iVar23._2_2_" identifier . field_identifier) = (pointer_expression "*(undefined2 *)&pEVar15->field_0x2" * (cast_expression "(undefined2 *)&pEVar15->field_0x2" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar15->field_0x2" & (field_expression "pEVar15->field_0x2" identifier -> field_identifier))))) ;) (if_statement "if (iStack_8c == iVar23) {\n    return;\n  }" if (parenthesized_expression "(iStack_8c == iVar23)" ( (binary_expression "iStack_8c == iVar23" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar25 = *(code **)(puVar22 + 0xaa8a8);" (assignment_expression "pcVar25 = *(code **)(puVar22 + 0xaa8a8)" identifier = (pointer_expression "*(code **)(puVar22 + 0xaa8a8)" * (cast_expression "(code **)(puVar22 + 0xaa8a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0xaa8a8)" ( (binary_expression "puVar22 + 0xaa8a8" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar13 = *(int **)(pcVar25 + 0xaa46c);" (assignment_expression "piVar13 = *(int **)(pcVar25 + 0xaa46c)" identifier = (pointer_expression "*(int **)(pcVar25 + 0xaa46c)" * (cast_expression "(int **)(pcVar25 + 0xaa46c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0xaa46c)" ( (binary_expression "pcVar25 + 0xaa46c" identifier + number_literal) ))))) ;) (expression_statement "pVVar21 = pPVar2->pVdbe;" (assignment_expression "pVVar21 = pPVar2->pVdbe" identifier = (field_expression "pPVar2->pVdbe" identifier -> field_identifier)) ;) (expression_statement "iStack_16c = 0;" (assignment_expression "iStack_16c = 0" identifier = number_literal) ;) (expression_statement "iStack_168 = 0;" (assignment_expression "iStack_168 = 0" identifier = number_literal) ;) (expression_statement "iStack_ec = *piVar13;" (assignment_expression "iStack_ec = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "pPStack_e4 = pPVar14;" (assignment_expression "pPStack_e4 = pPVar14" identifier = identifier) ;) (expression_statement "pEStack_e0 = pEVar15;" (assignment_expression "pEStack_e0 = pEVar15" identifier = identifier) ;) (expression_statement "pPStack_dc = pPVar17;" (assignment_expression "pPStack_dc = pPVar17" identifier = identifier) ;) (expression_statement "pPStack_d8 = pPVar18;" (assignment_expression "pPStack_d8 = pPVar18" identifier = identifier) ;) (expression_statement "pPStack_d4 = pPVar20;" (assignment_expression "pPStack_d4 = pPVar20" identifier = identifier) ;) (expression_statement "pPStack_d0 = pParse_00;" (assignment_expression "pPStack_d0 = pParse_00" identifier = identifier) ;) (expression_statement "pPStack_cc = unaff_s7;" (assignment_expression "pPStack_cc = unaff_s7" identifier = identifier) ;) (if_statement "if (pVVar21 != (Vdbe *)0x0) {\n    if (pPVar24 == (Parse *)0x0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      pPVar14 = dest_00;\n    }\n    else {\n      bVar9 = *(byte *)&pPVar24->db;\n      uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff;\n      if (uVar3 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();\n        return;\n      }\n      puVar4 = *(uint **)&pPVar24->isMultiWrite;\n      pPVar18 = (Parse *)(pPVar2->nLabel + -1);\n      uVar3 = *puVar4;\n      pPVar2->nLabel = (int)pPVar18;\n      iVar23 = pPVar24->rc;\n      if (iVar23 == 0) {\n        pPVar24 = (Parse *)0x0;\n        pEVar15 = (Expr *)(uint)bVar9;\n      }\n      else {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }\n      iStack_16c = 0;\n      if ((int)(uVar3 - 1) < 1) {\n        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);\n        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;\n      }\n      else {\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }\n      if ((uVar3 & 1) == 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      }\n      else {\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }\n      (*(code *)pPStack_1ac)(pVVar21,pPVar18);\n      if (iStack_16c != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n      pPVar14 = dest_00;\n      pParse_00 = pPVar2;\n      if (iStack_168 != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n    }\n  }" if (parenthesized_expression "(pVVar21 != (Vdbe *)0x0)" ( (binary_expression "pVVar21 != (Vdbe *)0x0" identifier != (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (pPVar24 == (Parse *)0x0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      pPVar14 = dest_00;\n    }\n    else {\n      bVar9 = *(byte *)&pPVar24->db;\n      uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff;\n      if (uVar3 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();\n        return;\n      }\n      puVar4 = *(uint **)&pPVar24->isMultiWrite;\n      pPVar18 = (Parse *)(pPVar2->nLabel + -1);\n      uVar3 = *puVar4;\n      pPVar2->nLabel = (int)pPVar18;\n      iVar23 = pPVar24->rc;\n      if (iVar23 == 0) {\n        pPVar24 = (Parse *)0x0;\n        pEVar15 = (Expr *)(uint)bVar9;\n      }\n      else {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }\n      iStack_16c = 0;\n      if ((int)(uVar3 - 1) < 1) {\n        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);\n        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;\n      }\n      else {\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }\n      if ((uVar3 & 1) == 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      }\n      else {\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }\n      (*(code *)pPStack_1ac)(pVVar21,pPVar18);\n      if (iStack_16c != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n      pPVar14 = dest_00;\n      pParse_00 = pPVar2;\n      if (iStack_168 != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n    }\n  }" { (if_statement "if (pPVar24 == (Parse *)0x0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      pPVar14 = dest_00;\n    }\n    else {\n      bVar9 = *(byte *)&pPVar24->db;\n      uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff;\n      if (uVar3 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();\n        return;\n      }\n      puVar4 = *(uint **)&pPVar24->isMultiWrite;\n      pPVar18 = (Parse *)(pPVar2->nLabel + -1);\n      uVar3 = *puVar4;\n      pPVar2->nLabel = (int)pPVar18;\n      iVar23 = pPVar24->rc;\n      if (iVar23 == 0) {\n        pPVar24 = (Parse *)0x0;\n        pEVar15 = (Expr *)(uint)bVar9;\n      }\n      else {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }\n      iStack_16c = 0;\n      if ((int)(uVar3 - 1) < 1) {\n        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);\n        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;\n      }\n      else {\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }\n      if ((uVar3 & 1) == 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      }\n      else {\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }\n      (*(code *)pPStack_1ac)(pVVar21,pPVar18);\n      if (iStack_16c != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n      pPVar14 = dest_00;\n      pParse_00 = pPVar2;\n      if (iStack_168 != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n    }" if (parenthesized_expression "(pPVar24 == (Parse *)0x0)" ( (binary_expression "pPVar24 == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      pPVar14 = dest_00;\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pVVar21,0x49,0,dest_00,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "pPVar14 = dest_00;" (assignment_expression "pPVar14 = dest_00" identifier = identifier) ;) }) (else_clause "else {\n      bVar9 = *(byte *)&pPVar24->db;\n      uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff;\n      if (uVar3 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();\n        return;\n      }\n      puVar4 = *(uint **)&pPVar24->isMultiWrite;\n      pPVar18 = (Parse *)(pPVar2->nLabel + -1);\n      uVar3 = *puVar4;\n      pPVar2->nLabel = (int)pPVar18;\n      iVar23 = pPVar24->rc;\n      if (iVar23 == 0) {\n        pPVar24 = (Parse *)0x0;\n        pEVar15 = (Expr *)(uint)bVar9;\n      }\n      else {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }\n      iStack_16c = 0;\n      if ((int)(uVar3 - 1) < 1) {\n        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);\n        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;\n      }\n      else {\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }\n      if ((uVar3 & 1) == 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      }\n      else {\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }\n      (*(code *)pPStack_1ac)(pVVar21,pPVar18);\n      if (iStack_16c != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n      pPVar14 = dest_00;\n      pParse_00 = pPVar2;\n      if (iStack_168 != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n    }" else (compound_statement "{\n      bVar9 = *(byte *)&pPVar24->db;\n      uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff;\n      if (uVar3 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();\n        return;\n      }\n      puVar4 = *(uint **)&pPVar24->isMultiWrite;\n      pPVar18 = (Parse *)(pPVar2->nLabel + -1);\n      uVar3 = *puVar4;\n      pPVar2->nLabel = (int)pPVar18;\n      iVar23 = pPVar24->rc;\n      if (iVar23 == 0) {\n        pPVar24 = (Parse *)0x0;\n        pEVar15 = (Expr *)(uint)bVar9;\n      }\n      else {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }\n      iStack_16c = 0;\n      if ((int)(uVar3 - 1) < 1) {\n        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);\n        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;\n      }\n      else {\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }\n      if ((uVar3 & 1) == 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      }\n      else {\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }\n      (*(code *)pPStack_1ac)(pVVar21,pPVar18);\n      if (iStack_16c != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n      pPVar14 = dest_00;\n      pParse_00 = pPVar2;\n      if (iStack_168 != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }\n    }" { (expression_statement "bVar9 = *(byte *)&pPVar24->db;" (assignment_expression "bVar9 = *(byte *)&pPVar24->db" identifier = (pointer_expression "*(byte *)&pPVar24->db" * (cast_expression "(byte *)&pPVar24->db" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar24->db" & (field_expression "pPVar24->db" identifier -> field_identifier))))) ;) (expression_statement "uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff;" (assignment_expression "uVar3 = (uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff" identifier = (binary_expression "(uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U) & 0xff" (call_expression "(uint)((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U)" ( (binary_expression "(int)&((Expr *)(uint)bVar9)[-1].iAgg + 1U" (cast_expression "(int)&((Expr *)(uint)bVar9)[-1].iAgg" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Expr *)(uint)bVar9)[-1].iAgg" & (field_expression "((Expr *)(uint)bVar9)[-1].iAgg" (subscript_expression "((Expr *)(uint)bVar9)[-1]" (parenthesized_expression "((Expr *)(uint)bVar9)" ( (cast_expression "(Expr *)(uint)bVar9" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) )) [ number_literal ]) . field_identifier))) + number_literal) ))) & number_literal)) ;) (if_statement "if (uVar3 < 0x97) {\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();\n        return;\n      }" if (parenthesized_expression "(uVar3 < 0x97)" ( (binary_expression "uVar3 < 0x97" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();\n        return;\n      }" { comment comment (expression_statement "(*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))();" (call_expression "(*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))()" (parenthesized_expression "(*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68))" ( (pointer_expression "*(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68)" * (parenthesized_expression "(pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68)" ( (binary_expression "pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4) + 0xb1f68" (binary_expression "pcVar25 + *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4)" * (cast_expression "(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4)" ( (binary_expression "*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar3 * 4" (binary_expression "*(int *)(pcVar25 + 0xa9fa4) + 0x3d88" (pointer_expression "*(int *)(pcVar25 + 0xa9fa4)" * (cast_expression "(int *)(pcVar25 + 0xa9fa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xa9fa4)" ( (binary_expression "pcVar25 + 0xa9fa4" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar3 * 4" identifier * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar4 = *(uint **)&pPVar24->isMultiWrite;" (assignment_expression "puVar4 = *(uint **)&pPVar24->isMultiWrite" identifier = (pointer_expression "*(uint **)&pPVar24->isMultiWrite" * (cast_expression "(uint **)&pPVar24->isMultiWrite" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pPVar24->isMultiWrite" & (field_expression "pPVar24->isMultiWrite" identifier -> field_identifier))))) ;) (expression_statement "pPVar18 = (Parse *)(pPVar2->nLabel + -1);" (assignment_expression "pPVar18 = (Parse *)(pPVar2->nLabel + -1)" identifier = (cast_expression "(Parse *)(pPVar2->nLabel + -1)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pPVar2->nLabel + -1)" ( (binary_expression "pPVar2->nLabel + -1" (field_expression "pPVar2->nLabel" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "uVar3 = *puVar4;" (assignment_expression "uVar3 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "pPVar2->nLabel = (int)pPVar18;" (assignment_expression "pPVar2->nLabel = (int)pPVar18" (field_expression "pPVar2->nLabel" identifier -> field_identifier) = (cast_expression "(int)pPVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar23 = pPVar24->rc;" (assignment_expression "iVar23 = pPVar24->rc" identifier = (field_expression "pPVar24->rc" identifier -> field_identifier)) ;) (if_statement "if (iVar23 == 0) {\n        pPVar24 = (Parse *)0x0;\n        pEVar15 = (Expr *)(uint)bVar9;\n      }\n      else {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        pPVar24 = (Parse *)0x0;\n        pEVar15 = (Expr *)(uint)bVar9;\n      }" { (expression_statement "pPVar24 = (Parse *)0x0;" (assignment_expression "pPVar24 = (Parse *)0x0" identifier = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar15 = (Expr *)(uint)bVar9;" (assignment_expression "pEVar15 = (Expr *)(uint)bVar9" identifier = (cast_expression "(Expr *)(uint)bVar9" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) (else_clause "else {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }" else (compound_statement "{\n        (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);\n        EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);\n        EStack_15c.op2 = EStack_15c.op;\n        pPVar24 = (Parse *)&psStack_124;\n        EStack_15c.flags = EStack_15c.flags & 0xffffefff;\n        EStack_15c.op = 0xa4;\n        pcStack_120 = (char *)0x0;\n        pVStack_11c = (Vdbe *)0x0;\n        pPStack_114 = (Parse *)0x0;\n        uStack_110._0_1_ = '\0';\n        uStack_110._1_1_ = '\0';\n        uStack_110._2_1_ = '\0';\n        uStack_110._3_1_ = '\0';\n        uStack_10c._0_1_ = '\0';\n        uStack_10c._1_1_ = '\0';\n        uStack_10c._2_2_ = 0;\n        iStack_108 = 0;\n        iStack_104 = 0;\n        iStack_100 = 0;\n        iStack_fc = 0;\n        iStack_f8 = 0;\n        iStack_f4 = 0;\n        iStack_f0 = 0;\n        psStack_124 = (sqlite3 *)0x35000000;\n        pEVar15 = &EStack_15c;\n        pEStack_118 = &EStack_15c;\n      }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(&EStack_15c)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1f0) + -0x69a4" (pointer_expression "*(int *)(pcVar25 + 0xaa1f0)" * (cast_expression "(int *)(pcVar25 + 0xaa1f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1f0)" ( (binary_expression "pcVar25 + 0xaa1f0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(&EStack_15c)" ( (pointer_expression "&EStack_15c" & identifier) ))) ;) (expression_statement "EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c);" (assignment_expression "EStack_15c.iTable = exprCodeVector(pPVar2,&EStack_15c,&iStack_16c)" (field_expression "EStack_15c.iTable" identifier . field_identifier) = (call_expression "exprCodeVector(pPVar2,&EStack_15c,&iStack_16c)" identifier (argument_list "(pPVar2,&EStack_15c,&iStack_16c)" ( identifier , (pointer_expression "&EStack_15c" & identifier) , (pointer_expression "&iStack_16c" & identifier) )))) ;) (expression_statement "EStack_15c.op2 = EStack_15c.op;" (assignment_expression "EStack_15c.op2 = EStack_15c.op" (field_expression "EStack_15c.op2" identifier . field_identifier) = (field_expression "EStack_15c.op" identifier . field_identifier)) ;) (expression_statement "pPVar24 = (Parse *)&psStack_124;" (assignment_expression "pPVar24 = (Parse *)&psStack_124" identifier = (cast_expression "(Parse *)&psStack_124" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_124" & identifier))) ;) (expression_statement "EStack_15c.flags = EStack_15c.flags & 0xffffefff;" (assignment_expression "EStack_15c.flags = EStack_15c.flags & 0xffffefff" (field_expression "EStack_15c.flags" identifier . field_identifier) = (binary_expression "EStack_15c.flags & 0xffffefff" (field_expression "EStack_15c.flags" identifier . field_identifier) & number_literal)) ;) (expression_statement "EStack_15c.op = 0xa4;" (assignment_expression "EStack_15c.op = 0xa4" (field_expression "EStack_15c.op" identifier . field_identifier) = number_literal) ;) (expression_statement "pcStack_120 = (char *)0x0;" (assignment_expression "pcStack_120 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pVStack_11c = (Vdbe *)0x0;" (assignment_expression "pVStack_11c = (Vdbe *)0x0" identifier = (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPStack_114 = (Parse *)0x0;" (assignment_expression "pPStack_114 = (Parse *)0x0" identifier = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_110._0_1_ = '\0';" (assignment_expression "uStack_110._0_1_ = '\0'" (field_expression "uStack_110._0_1_" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uStack_110._1_1_ = '\0';" (assignment_expression "uStack_110._1_1_ = '\0'" (field_expression "uStack_110._1_1_" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uStack_110._2_1_ = '\0';" (assignment_expression "uStack_110._2_1_ = '\0'" (field_expression "uStack_110._2_1_" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uStack_110._3_1_ = '\0';" (assignment_expression "uStack_110._3_1_ = '\0'" (field_expression "uStack_110._3_1_" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uStack_10c._0_1_ = '\0';" (assignment_expression "uStack_10c._0_1_ = '\0'" (field_expression "uStack_10c._0_1_" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uStack_10c._1_1_ = '\0';" (assignment_expression "uStack_10c._1_1_ = '\0'" (field_expression "uStack_10c._1_1_" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uStack_10c._2_2_ = 0;" (assignment_expression "uStack_10c._2_2_ = 0" (field_expression "uStack_10c._2_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "iStack_108 = 0;" (assignment_expression "iStack_108 = 0" identifier = number_literal) ;) (expression_statement "iStack_104 = 0;" (assignment_expression "iStack_104 = 0" identifier = number_literal) ;) (expression_statement "iStack_100 = 0;" (assignment_expression "iStack_100 = 0" identifier = number_literal) ;) (expression_statement "iStack_fc = 0;" (assignment_expression "iStack_fc = 0" identifier = number_literal) ;) (expression_statement "iStack_f8 = 0;" (assignment_expression "iStack_f8 = 0" identifier = number_literal) ;) (expression_statement "iStack_f4 = 0;" (assignment_expression "iStack_f4 = 0" identifier = number_literal) ;) (expression_statement "iStack_f0 = 0;" (assignment_expression "iStack_f0 = 0" identifier = number_literal) ;) (expression_statement "psStack_124 = (sqlite3 *)0x35000000;" (assignment_expression "psStack_124 = (sqlite3 *)0x35000000" identifier = (cast_expression "(sqlite3 *)0x35000000" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar15 = &EStack_15c;" (assignment_expression "pEVar15 = &EStack_15c" identifier = (pointer_expression "&EStack_15c" & identifier)) ;) (expression_statement "pEStack_118 = &EStack_15c;" (assignment_expression "pEStack_118 = &EStack_15c" identifier = (pointer_expression "&EStack_15c" & identifier)) ;) }))) (expression_statement "iStack_16c = 0;" (assignment_expression "iStack_16c = 0" identifier = number_literal) ;) (if_statement "if ((int)(uVar3 - 1) < 1) {\n        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);\n        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;\n      }\n      else {\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }" if (parenthesized_expression "((int)(uVar3 - 1) < 1)" ( (binary_expression "(int)(uVar3 - 1) < 1" (cast_expression "(int)(uVar3 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar3 - 1)" ( (binary_expression "uVar3 - 1" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n        pPVar20 = *(Parse **)(pcVar25 + 0xaa208);\n        pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;\n      }" { (expression_statement "pPVar20 = *(Parse **)(pcVar25 + 0xaa208);" (assignment_expression "pPVar20 = *(Parse **)(pcVar25 + 0xaa208)" identifier = (pointer_expression "*(Parse **)(pcVar25 + 0xaa208)" * (cast_expression "(Parse **)(pcVar25 + 0xaa208)" ( (type_descriptor "Parse **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) ))))) ;) (expression_statement "pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken;" (assignment_expression "pPStack_1ac = (Parse *)&pPVar20[0xc].sLastToken" identifier = (cast_expression "(Parse *)&pPVar20[0xc].sLastToken" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar20[0xc].sLastToken" & (field_expression "pPVar20[0xc].sLastToken" (subscript_expression "pPVar20[0xc]" identifier [ number_literal ]) . field_identifier)))) ;) }) (else_clause "else {\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }" else (compound_statement "{\n        iVar16 = *(int *)(pcVar25 + 0xaa208);\n        iVar10 = *(int *)(pcVar25 + 0xaa2a0);\n        pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n        pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);\n        iVar5 = *(int *)(pcVar25 + 0xaa218);\n        puVar19 = puVar4 + 1;\n        do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);\n      }" { (expression_statement "iVar16 = *(int *)(pcVar25 + 0xaa208);" (assignment_expression "iVar16 = *(int *)(pcVar25 + 0xaa208)" identifier = (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar25 + 0xaa2a0);" (assignment_expression "iVar10 = *(int *)(pcVar25 + 0xaa2a0)" identifier = (pointer_expression "*(int *)(pcVar25 + 0xaa2a0)" * (cast_expression "(int *)(pcVar25 + 0xaa2a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa2a0)" ( (binary_expression "pcVar25 + 0xaa2a0" identifier + number_literal) ))))) ;) (expression_statement "pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);" (assignment_expression "pPStack_1ac = (Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78)" identifier = (cast_expression "(Parse *)(*(int *)(pcVar25 + 0xaa208) + 0xd78)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0xd78)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0xd78" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb);" (assignment_expression "pPVar17 = (Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb)" identifier = (cast_expression "(Parse *)(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb)" ( (binary_expression "puVar4 + (uVar3 - 2 >> 1) * 10 + 0xb" (binary_expression "puVar4 + (uVar3 - 2 >> 1) * 10" identifier + (binary_expression "(uVar3 - 2 >> 1) * 10" (parenthesized_expression "(uVar3 - 2 >> 1)" ( (binary_expression "uVar3 - 2 >> 1" (binary_expression "uVar3 - 2" identifier - number_literal) >> number_literal) )) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar5 = *(int *)(pcVar25 + 0xaa218);" (assignment_expression "iVar5 = *(int *)(pcVar25 + 0xaa218)" identifier = (pointer_expression "*(int *)(pcVar25 + 0xaa218)" * (cast_expression "(int *)(pcVar25 + 0xaa218)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa218)" ( (binary_expression "pcVar25 + 0xaa218" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = puVar4 + 1;" (assignment_expression "puVar19 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (do_statement "do {\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        } while (pPVar17 != pPVar20);" do (compound_statement "{\n          pPVar11 = (Parse *)*puVar19;\n          if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }\n          pPStack_114 = pPVar11;\n          pPVar20 = (Parse *)(puVar19 + 10);\n          pEVar15 = (Expr *)(pPVar2->nLabel + -1);\n          pPVar2->nLabel = (int)pEVar15;\n          (*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);\n          (*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);\n          (*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);\n          (*(code *)pPStack_1ac)(pVVar21,pEVar15);\n          puVar19 = (uint *)pPVar20;\n        }" { (expression_statement "pPVar11 = (Parse *)*puVar19;" (assignment_expression "pPVar11 = (Parse *)*puVar19" identifier = (cast_expression "(Parse *)*puVar19" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar19" * identifier))) ;) (if_statement "if (iVar23 == 0) {\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n            pPVar24 = (Parse *)*puVar19;\n            pPVar11 = pPStack_114;\n          }" { (expression_statement "pPVar24 = (Parse *)*puVar19;" (assignment_expression "pPVar24 = (Parse *)*puVar19" identifier = (cast_expression "(Parse *)*puVar19" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar19" * identifier))) ;) (expression_statement "pPVar11 = pPStack_114;" (assignment_expression "pPVar11 = pPStack_114" identifier = identifier) ;) })) (expression_statement "pPStack_114 = pPVar11;" (assignment_expression "pPStack_114 = pPVar11" identifier = identifier) ;) (expression_statement "pPVar20 = (Parse *)(puVar19 + 10);" (assignment_expression "pPVar20 = (Parse *)(puVar19 + 10)" identifier = (cast_expression "(Parse *)(puVar19 + 10)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 10)" ( (binary_expression "puVar19 + 10" identifier + number_literal) )))) ;) (expression_statement "pEVar15 = (Expr *)(pPVar2->nLabel + -1);" (assignment_expression "pEVar15 = (Expr *)(pPVar2->nLabel + -1)" identifier = (cast_expression "(Expr *)(pPVar2->nLabel + -1)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pPVar2->nLabel + -1)" ( (binary_expression "pPVar2->nLabel + -1" (field_expression "pPVar2->nLabel" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pPVar2->nLabel = (int)pEVar15;" (assignment_expression "pPVar2->nLabel = (int)pEVar15" (field_expression "pPVar2->nLabel" identifier -> field_identifier) = (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10);" (call_expression "(*(code *)(iVar5 + 0x6550))(pPVar2,pPVar24,pEVar15,0x10)" (parenthesized_expression "(*(code *)(iVar5 + 0x6550))" ( (pointer_expression "*(code *)(iVar5 + 0x6550)" * (cast_expression "(code *)(iVar5 + 0x6550)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x6550)" ( (binary_expression "iVar5 + 0x6550" identifier + number_literal) )))) )) (argument_list "(pPVar2,pPVar24,pEVar15,0x10)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00);" (call_expression "(*(code *)(iVar10 + -0x7cdc))(pPVar2,puVar19[5],dest_00)" (parenthesized_expression "(*(code *)(iVar10 + -0x7cdc))" ( (pointer_expression "*(code *)(iVar10 + -0x7cdc)" * (cast_expression "(code *)(iVar10 + -0x7cdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x7cdc)" ( (binary_expression "iVar10 + -0x7cdc" identifier + number_literal) )))) )) (argument_list "(pPVar2,puVar19[5],dest_00)" ( identifier , (subscript_expression "puVar19[5]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "(*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0);" (call_expression "(*(code *)(iVar16 + 0x10fc))(pVVar21,0xb,0,pPVar18,0)" (parenthesized_expression "(*(code *)(iVar16 + 0x10fc))" ( (pointer_expression "*(code *)(iVar16 + 0x10fc)" * (cast_expression "(code *)(iVar16 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10fc)" ( (binary_expression "iVar16 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(pVVar21,0xb,0,pPVar18,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*(code *)pPStack_1ac)(pVVar21,pEVar15);" (call_expression "(*(code *)pPStack_1ac)(pVVar21,pEVar15)" (parenthesized_expression "(*(code *)pPStack_1ac)" ( (pointer_expression "*(code *)pPStack_1ac" * (cast_expression "(code *)pPStack_1ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pVVar21,pEVar15)" ( identifier , identifier ))) ;) (expression_statement "puVar19 = (uint *)pPVar20;" (assignment_expression "puVar19 = (uint *)pPVar20" identifier = (cast_expression "(uint *)pPVar20" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pPVar17 != pPVar20)" ( (binary_expression "pPVar17 != pPVar20" identifier != identifier) )) ;) }))) (if_statement "if ((uVar3 & 1) == 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      }\n      else {\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }" if (parenthesized_expression "((uVar3 & 1) == 0)" ( (binary_expression "(uVar3 & 1) == 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);\n      }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(pVVar21,0x49,0,dest_00,0)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pVVar21,0x49,0,dest_00,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }) (else_clause "else {\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }" else (compound_statement "{\n        sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);\n      }" { (expression_statement "sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00);" (call_expression "sqlite3ExprCode(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00)" identifier (argument_list "(pPVar2,(Expr *)puVar4[(uVar3 - 1) * 5 + 1],(int)dest_00)" ( identifier , (cast_expression "(Expr *)puVar4[(uVar3 - 1) * 5 + 1]" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[(uVar3 - 1) * 5 + 1]" identifier [ (binary_expression "(uVar3 - 1) * 5 + 1" (binary_expression "(uVar3 - 1) * 5" (parenthesized_expression "(uVar3 - 1)" ( (binary_expression "uVar3 - 1" identifier - number_literal) )) * number_literal) + number_literal) ])) , (cast_expression "(int)dest_00" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (expression_statement "(*(code *)pPStack_1ac)(pVVar21,pPVar18);" (call_expression "(*(code *)pPStack_1ac)(pVVar21,pPVar18)" (parenthesized_expression "(*(code *)pPStack_1ac)" ( (pointer_expression "*(code *)pPStack_1ac" * (cast_expression "(code *)pPStack_1ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pVVar21,pPVar18)" ( identifier , identifier ))) ;) (if_statement "if (iStack_16c != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }" if (parenthesized_expression "(iStack_16c != 0)" ( (binary_expression "iStack_16c != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x4854" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pPVar2)" ( identifier ))) ;) (expression_statement "pPStack_1ac = dest_00;" (assignment_expression "pPStack_1ac = dest_00" identifier = identifier) ;) })) (expression_statement "pPVar14 = dest_00;" (assignment_expression "pPVar14 = dest_00" identifier = identifier) ;) (expression_statement "pParse_00 = pPVar2;" (assignment_expression "pParse_00 = pPVar2" identifier = identifier) ;) (if_statement "if (iStack_168 != 0) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }" if (parenthesized_expression "(iStack_168 != 0)" ( (binary_expression "iStack_168 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);\n        pPStack_1ac = dest_00;\n      }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pPVar2)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x4854" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pPVar2)" ( identifier ))) ;) (expression_statement "pPStack_1ac = dest_00;" (assignment_expression "pPStack_1ac = dest_00" identifier = identifier) ;) })) }))) })) (do_statement "do {\n    if (iStack_ec == *piVar13) {\n      return;\n    }\n    iVar23 = iStack_ec;\n    bVar9 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar23 + 0x28) = bVar9 & 0xc0;\n    sqlite3ExprCodeExprList(pParse_00,(ExprList *)pPVar18,(int)pPStack_1ac,0,'\x03');\n    if ((int)pPVar17 < 2) {\n      if (pPVar17 == (Parse *)0x1) {\nLAB_000e80f8:\n        pcVar6 = pPVar18->zErrMsg;\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if (((uint)pPVar24->zErrMsg & 0x80) == 0) goto LAB_000e80f8;\n      pcVar6 = *(char **)&pPVar18->disableLookaside;\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);\n    }\n    uVar3 = *(uint *)(in_t1 + 4);\n    if ((uVar3 & 0x20) == 0) {\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == (char *)0x0) {\n        in_t0 = (pEVar15->u).zToken;\n      }\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe);\n      uVar3 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar3 & 0x8000) == 0) {\n      uVar7 = 0x3f;\n      if (pParse_00->iSelfTab != 0) {\n        uVar7 = 0x3e;\n      }\n      uVar7 = (*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t1,0xfffffff8);\n      if (0 < pVVar21->nOp) {\n        pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;\n      }\n    }\n    else {\n      pcVar6 = pPVar18->zErrMsg;\n      if (*pcVar6 == -0x62) {\n        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);\n      }\n      else {\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }\n    }\n    if ((pPVar17 != (Parse *)0x0) && (pPVar20 == (Parse *)0x0)) {\n      if (pPVar17 == (Parse *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);\n      }\n      else if (pParse_00->nRangeReg < (int)pPVar17) {\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    if (iStack_ec == *piVar13) {\n      return;\n    }\n    iVar23 = iStack_ec;\n    bVar9 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar23 + 0x28) = bVar9 & 0xc0;\n    sqlite3ExprCodeExprList(pParse_00,(ExprList *)pPVar18,(int)pPStack_1ac,0,'\x03');\n    if ((int)pPVar17 < 2) {\n      if (pPVar17 == (Parse *)0x1) {\nLAB_000e80f8:\n        pcVar6 = pPVar18->zErrMsg;\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if (((uint)pPVar24->zErrMsg & 0x80) == 0) goto LAB_000e80f8;\n      pcVar6 = *(char **)&pPVar18->disableLookaside;\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);\n    }\n    uVar3 = *(uint *)(in_t1 + 4);\n    if ((uVar3 & 0x20) == 0) {\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == (char *)0x0) {\n        in_t0 = (pEVar15->u).zToken;\n      }\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe);\n      uVar3 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar3 & 0x8000) == 0) {\n      uVar7 = 0x3f;\n      if (pParse_00->iSelfTab != 0) {\n        uVar7 = 0x3e;\n      }\n      uVar7 = (*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t1,0xfffffff8);\n      if (0 < pVVar21->nOp) {\n        pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;\n      }\n    }\n    else {\n      pcVar6 = pPVar18->zErrMsg;\n      if (*pcVar6 == -0x62) {\n        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);\n      }\n      else {\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }\n    }\n    if ((pPVar17 != (Parse *)0x0) && (pPVar20 == (Parse *)0x0)) {\n      if (pPVar17 == (Parse *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);\n      }\n      else if (pParse_00->nRangeReg < (int)pPVar17) {\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }\n    }\n  }" { (if_statement "if (iStack_ec == *piVar13) {\n      return;\n    }" if (parenthesized_expression "(iStack_ec == *piVar13)" ( (binary_expression "iStack_ec == *piVar13" identifier == (pointer_expression "*piVar13" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar23 = iStack_ec;" (assignment_expression "iVar23 = iStack_ec" identifier = identifier) ;) (expression_statement "bVar9 = (**(code **)(pcVar25 + 0xaa440))();" (assignment_expression "bVar9 = (**(code **)(pcVar25 + 0xaa440))()" identifier = (call_expression "(**(code **)(pcVar25 + 0xaa440))()" (parenthesized_expression "(**(code **)(pcVar25 + 0xaa440))" ( (pointer_expression "**(code **)(pcVar25 + 0xaa440)" * (pointer_expression "*(code **)(pcVar25 + 0xaa440)" * (cast_expression "(code **)(pcVar25 + 0xaa440)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0xaa440)" ( (binary_expression "pcVar25 + 0xaa440" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(byte *)(iVar23 + 0x28) = bVar9 & 0xc0;" (assignment_expression "*(byte *)(iVar23 + 0x28) = bVar9 & 0xc0" (pointer_expression "*(byte *)(iVar23 + 0x28)" * (cast_expression "(byte *)(iVar23 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x28)" ( (binary_expression "iVar23 + 0x28" identifier + number_literal) )))) = (binary_expression "bVar9 & 0xc0" identifier & number_literal)) ;) (expression_statement "sqlite3ExprCodeExprList(pParse_00,(ExprList *)pPVar18,(int)pPStack_1ac,0,'\x03');" (call_expression "sqlite3ExprCodeExprList(pParse_00,(ExprList *)pPVar18,(int)pPStack_1ac,0,'\x03')" identifier (argument_list "(pParse_00,(ExprList *)pPVar18,(int)pPStack_1ac,0,'\x03')" ( identifier , (cast_expression "(ExprList *)pPVar18" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)pPStack_1ac" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (char_literal "'\x03'" ' escape_sequence ') ))) ;) (if_statement "if ((int)pPVar17 < 2) {\n      if (pPVar17 == (Parse *)0x1) {\nLAB_000e80f8:\n        pcVar6 = pPVar18->zErrMsg;\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if (((uint)pPVar24->zErrMsg & 0x80) == 0) goto LAB_000e80f8;\n      pcVar6 = *(char **)&pPVar18->disableLookaside;\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);\n    }" if (parenthesized_expression "((int)pPVar17 < 2)" ( (binary_expression "(int)pPVar17 < 2" (cast_expression "(int)pPVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (pPVar17 == (Parse *)0x1) {\nLAB_000e80f8:\n        pcVar6 = pPVar18->zErrMsg;\n        goto LAB_000e8104;\n      }\n    }" { (if_statement "if (pPVar17 == (Parse *)0x1) {\nLAB_000e80f8:\n        pcVar6 = pPVar18->zErrMsg;\n        goto LAB_000e8104;\n      }" if (parenthesized_expression "(pPVar17 == (Parse *)0x1)" ( (binary_expression "pPVar17 == (Parse *)0x1" identifier == (cast_expression "(Parse *)0x1" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000e80f8:\n        pcVar6 = pPVar18->zErrMsg;\n        goto LAB_000e8104;\n      }" { (labeled_statement "LAB_000e80f8:\n        pcVar6 = pPVar18->zErrMsg;" statement_identifier : (expression_statement "pcVar6 = pPVar18->zErrMsg;" (assignment_expression "pcVar6 = pPVar18->zErrMsg" identifier = (field_expression "pPVar18->zErrMsg" identifier -> field_identifier)) ;)) (goto_statement "goto LAB_000e8104;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (((uint)pPVar24->zErrMsg & 0x80) == 0) goto LAB_000e80f8;\n      pcVar6 = *(char **)&pPVar18->disableLookaside;\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);\n    }" else (compound_statement "{\n      if (((uint)pPVar24->zErrMsg & 0x80) == 0) goto LAB_000e80f8;\n      pcVar6 = *(char **)&pPVar18->disableLookaside;\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);\n    }" { (if_statement "if (((uint)pPVar24->zErrMsg & 0x80) == 0) goto LAB_000e80f8;" if (parenthesized_expression "(((uint)pPVar24->zErrMsg & 0x80) == 0)" ( (binary_expression "((uint)pPVar24->zErrMsg & 0x80) == 0" (parenthesized_expression "((uint)pPVar24->zErrMsg & 0x80)" ( (binary_expression "(uint)pPVar24->zErrMsg & 0x80" (cast_expression "(uint)pPVar24->zErrMsg" ( (type_descriptor "uint" type_identifier) ) (field_expression "pPVar24->zErrMsg" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000e80f8;" goto statement_identifier ;)) (expression_statement "pcVar6 = *(char **)&pPVar18->disableLookaside;" (assignment_expression "pcVar6 = *(char **)&pPVar18->disableLookaside" identifier = (pointer_expression "*(char **)&pPVar18->disableLookaside" * (cast_expression "(char **)&pPVar18->disableLookaside" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pPVar18->disableLookaside" & (field_expression "pPVar18->disableLookaside" identifier -> field_identifier))))) ;) (labeled_statement "LAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);" statement_identifier : (expression_statement "in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6);" (assignment_expression "in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6)" identifier = (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pEVar15,in_t1,pPVar17,pcVar6)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1f0) + 0xb8c" (pointer_expression "*(int *)(pcVar25 + 0xaa1f0)" * (cast_expression "(int *)(pcVar25 + 0xaa1f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1f0)" ( (binary_expression "pcVar25 + 0xaa1f0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pEVar15,in_t1,pPVar17,pcVar6)" ( identifier , identifier , identifier , identifier )))) ;)) }))) (expression_statement "uVar3 = *(uint *)(in_t1 + 4);" (assignment_expression "uVar3 = *(uint *)(in_t1 + 4)" identifier = (pointer_expression "*(uint *)(in_t1 + 4)" * (cast_expression "(uint *)(in_t1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t1 + 4)" ( (binary_expression "in_t1 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((uVar3 & 0x20) == 0) {\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == (char *)0x0) {\n        in_t0 = (pEVar15->u).zToken;\n      }\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe);\n      uVar3 = *(uint *)(in_t1 + 4);\n    }" if (parenthesized_expression "((uVar3 & 0x20) == 0)" ( (binary_expression "(uVar3 & 0x20) == 0" (parenthesized_expression "(uVar3 & 0x20)" ( (binary_expression "uVar3 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }" { (expression_statement "pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);" (assignment_expression "pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" identifier = (cast_expression "(Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n      if (in_t0 == (char *)0x0) {\n        in_t0 = (pEVar15->u).zToken;\n      }\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe);\n      uVar3 = *(uint *)(in_t1 + 4);\n    }" else (compound_statement "{\n      if (in_t0 == (char *)0x0) {\n        in_t0 = (pEVar15->u).zToken;\n      }\n      pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe);\n      uVar3 = *(uint *)(in_t1 + 4);\n    }" { (if_statement "if (in_t0 == (char *)0x0) {\n        in_t0 = (pEVar15->u).zToken;\n      }" if (parenthesized_expression "(in_t0 == (char *)0x0)" ( (binary_expression "in_t0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        in_t0 = (pEVar15->u).zToken;\n      }" { (expression_statement "in_t0 = (pEVar15->u).zToken;" (assignment_expression "in_t0 = (pEVar15->u).zToken" identifier = (field_expression "(pEVar15->u).zToken" (parenthesized_expression "(pEVar15->u)" ( (field_expression "pEVar15->u" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);" (assignment_expression "pEVar15 = (Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" identifier = (cast_expression "(Expr *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0);" (assignment_expression "uVar7 = (*(code *)pEVar15)(pVVar21,0x52,0,0,0)" identifier = (call_expression "(*(code *)pEVar15)(pVVar21,0x52,0,0,0)" (parenthesized_expression "(*(code *)pEVar15)" ( (pointer_expression "*(code *)pEVar15" * (cast_expression "(code *)pEVar15" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pVVar21,0x52,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t0,0xfffffffe)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pVVar21,uVar7,in_t0,0xfffffffe)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "uVar3 = *(uint *)(in_t1 + 4);" (assignment_expression "uVar3 = *(uint *)(in_t1 + 4)" identifier = (pointer_expression "*(uint *)(in_t1 + 4)" * (cast_expression "(uint *)(in_t1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t1 + 4)" ( (binary_expression "in_t1 + 4" identifier + number_literal) ))))) ;) }))) (if_statement "if ((uVar3 & 0x8000) == 0) {\n      uVar7 = 0x3f;\n      if (pParse_00->iSelfTab != 0) {\n        uVar7 = 0x3e;\n      }\n      uVar7 = (*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t1,0xfffffff8);\n      if (0 < pVVar21->nOp) {\n        pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;\n      }\n    }\n    else {\n      pcVar6 = pPVar18->zErrMsg;\n      if (*pcVar6 == -0x62) {\n        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);\n      }\n      else {\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }\n    }" if (parenthesized_expression "((uVar3 & 0x8000) == 0)" ( (binary_expression "(uVar3 & 0x8000) == 0" (parenthesized_expression "(uVar3 & 0x8000)" ( (binary_expression "uVar3 & 0x8000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar7 = 0x3f;\n      if (pParse_00->iSelfTab != 0) {\n        uVar7 = 0x3e;\n      }\n      uVar7 = (*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t1,0xfffffff8);\n      if (0 < pVVar21->nOp) {\n        pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;\n      }\n    }" { (expression_statement "uVar7 = 0x3f;" (assignment_expression "uVar7 = 0x3f" identifier = number_literal) ;) (if_statement "if (pParse_00->iSelfTab != 0) {\n        uVar7 = 0x3e;\n      }" if (parenthesized_expression "(pParse_00->iSelfTab != 0)" ( (binary_expression "pParse_00->iSelfTab != 0" (field_expression "pParse_00->iSelfTab" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        uVar7 = 0x3e;\n      }" { (expression_statement "uVar7 = 0x3e;" (assignment_expression "uVar7 = 0x3e" identifier = number_literal) ;) })) (expression_statement "uVar7 = (*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14);" (assignment_expression "uVar7 = (*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14)" identifier = (call_expression "(*(code *)pEVar15)(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14)" (parenthesized_expression "(*(code *)pEVar15)" ( (pointer_expression "*(code *)pEVar15" * (cast_expression "(code *)pEVar15" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pVVar21,uVar7,pPVar20,pPStack_1ac,pPVar14)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t1,0xfffffff8);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(pVVar21,uVar7,in_t1,0xfffffff8)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pVVar21,uVar7,in_t1,0xfffffff8)" ( identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (0 < pVVar21->nOp) {\n        pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;\n      }" if (parenthesized_expression "(0 < pVVar21->nOp)" ( (binary_expression "0 < pVVar21->nOp" number_literal < (field_expression "pVVar21->nOp" identifier -> field_identifier)) )) (compound_statement "{\n        pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;\n      }" { (expression_statement "pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff;" (assignment_expression "pVVar21->aOp[pVVar21->nOp + -1].p5 = (ushort)pPVar17 & 0xff" (field_expression "pVVar21->aOp[pVVar21->nOp + -1].p5" (subscript_expression "pVVar21->aOp[pVVar21->nOp + -1]" (field_expression "pVVar21->aOp" identifier -> field_identifier) [ (binary_expression "pVVar21->nOp + -1" (field_expression "pVVar21->nOp" identifier -> field_identifier) + number_literal) ]) . field_identifier) = (binary_expression "(ushort)pPVar17 & 0xff" (cast_expression "(ushort)pPVar17" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal)) ;) })) }) (else_clause "else {\n      pcVar6 = pPVar18->zErrMsg;\n      if (*pcVar6 == -0x62) {\n        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);\n      }\n      else {\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }\n    }" else (compound_statement "{\n      pcVar6 = pPVar18->zErrMsg;\n      if (*pcVar6 == -0x62) {\n        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);\n      }\n      else {\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }\n    }" { (expression_statement "pcVar6 = pPVar18->zErrMsg;" (assignment_expression "pcVar6 = pPVar18->zErrMsg" identifier = (field_expression "pPVar18->zErrMsg" identifier -> field_identifier)) ;) (if_statement "if (*pcVar6 == -0x62) {\n        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);\n      }\n      else {\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }" if (parenthesized_expression "(*pcVar6 == -0x62)" ( (binary_expression "*pcVar6 == -0x62" (pointer_expression "*pcVar6" * identifier) == number_literal) )) (compound_statement "{\n        (*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);\n      }" { (expression_statement "(*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14);" (call_expression "(*(code *)pEVar15)(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14)" (parenthesized_expression "(*(code *)pEVar15)" ( (pointer_expression "*(code *)pEVar15" * (cast_expression "(code *)pEVar15" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pVVar21,0x59,*(undefined4 *)(pcVar6 + 0x1c),\n                           *(undefined4 *)(pcVar6 + 0x20),pPVar14)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(pcVar6 + 0x1c)" * (cast_expression "(undefined4 *)(pcVar6 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x1c)" ( (binary_expression "pcVar6 + 0x1c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar6 + 0x20)" * (cast_expression "(undefined4 *)(pcVar6 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x20)" ( (binary_expression "pcVar6 + 0x20" identifier + number_literal) )))) , identifier ))) ;) }) (else_clause "else {\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }" else (compound_statement "{\n        (*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);\n      }" { (expression_statement "(*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0);" (call_expression "(*(code *)pEVar15)(pVVar21,0x49,0,pPVar14,0)" (parenthesized_expression "(*(code *)pEVar15)" ( (pointer_expression "*(code *)pEVar15" * (cast_expression "(code *)pEVar15" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pVVar21,0x49,0,pPVar14,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }))) }))) (if_statement "if ((pPVar17 != (Parse *)0x0) && (pPVar20 == (Parse *)0x0)) {\n      if (pPVar17 == (Parse *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);\n      }\n      else if (pParse_00->nRangeReg < (int)pPVar17) {\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }\n    }" if (parenthesized_expression "((pPVar17 != (Parse *)0x0) && (pPVar20 == (Parse *)0x0))" ( (binary_expression "(pPVar17 != (Parse *)0x0) && (pPVar20 == (Parse *)0x0)" (parenthesized_expression "(pPVar17 != (Parse *)0x0)" ( (binary_expression "pPVar17 != (Parse *)0x0" identifier != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pPVar20 == (Parse *)0x0)" ( (binary_expression "pPVar20 == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (pPVar17 == (Parse *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);\n      }\n      else if (pParse_00->nRangeReg < (int)pPVar17) {\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }\n    }" { (if_statement "if (pPVar17 == (Parse *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);\n      }\n      else if (pParse_00->nRangeReg < (int)pPVar17) {\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }" if (parenthesized_expression "(pPVar17 == (Parse *)0x1)" ( (binary_expression "pPVar17 == (Parse *)0x1" identifier == (cast_expression "(Parse *)0x1" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);\n      }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x47a4" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pParse_00,pPStack_1ac)" ( identifier , identifier ))) ;) }) (else_clause "else if (pParse_00->nRangeReg < (int)pPVar17) {\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }" else (if_statement "if (pParse_00->nRangeReg < (int)pPVar17) {\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }" if (parenthesized_expression "(pParse_00->nRangeReg < (int)pPVar17)" ( (binary_expression "pParse_00->nRangeReg < (int)pPVar17" (field_expression "pParse_00->nRangeReg" identifier -> field_identifier) < (cast_expression "(int)pPVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pParse_00->nRangeReg = (int)pPVar17;\n        pParse_00->iRangeReg = (int)pPStack_1ac;\n      }" { (expression_statement "pParse_00->nRangeReg = (int)pPVar17;" (assignment_expression "pParse_00->nRangeReg = (int)pPVar17" (field_expression "pParse_00->nRangeReg" identifier -> field_identifier) = (cast_expression "(int)pPVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pParse_00->iRangeReg = (int)pPStack_1ac;" (assignment_expression "pParse_00->iRangeReg = (int)pPStack_1ac" (field_expression "pParse_00->iRangeReg" identifier -> field_identifier) = (cast_expression "(int)pPStack_1ac" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })))) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "code * FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)\n\n{\n  code cVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  char cVar10;\n  code *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar11;\n  int iVar12;\n  uint uVar13;\n  int in_t0;\n  int in_t1;\n  code *unaff_s0;\n  code *pcVar14;\n  int *piVar15;\n  code *unaff_s1;\n  code *pcVar16;\n  code *unaff_s2;\n  code *pcVar17;\n  int iVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *unaff_s5;\n  code *pcVar21;\n  code *unaff_s6;\n  code *pcVar22;\n  code *unaff_s7;\n  undefined *puVar23;\n  int iVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  undefined1 auStack_15c [4];\n  uint uStack_158;\n  undefined4 uStack_140;\n  undefined1 uStack_134;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  undefined4 uStack_11c;\n  code *pcStack_118;\n  code *pcStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  undefined4 uStack_f4;\n  undefined4 uStack_f0;\n  int iStack_ec;\n  code *pcStack_e8;\n  code *pcStack_e4;\n  code *pcStack_e0;\n  code *pcStack_dc;\n  code *pcStack_d8;\n  code *pcStack_d4;\n  code *pcStack_d0;\n  code *pcStack_cc;\n  int iStack_94;\n  code *pcStack_90;\n  code *pcStack_8c;\n  code *pcStack_84;\n  code *pcStack_80;\n  code *pcStack_7c;\n  undefined *puStack_78;\n  code *pcStack_74;\n  code *pcStack_70;\n  code *pcStack_6c;\n  code *pcStack_68;\n  code *pcStack_64;\n  code *local_50;\n  code *local_4c;\n  code *local_48;\n  code *local_44;\n  int local_34;\n  code *local_30;\n  code *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00190e24;\n  pcVar20 = *(code **)(param_1 + 8);\n  local_34 = 0;\n  local_30 = (code *)0x0;\n  local_2c = *(code **)PTR___stack_chk_guard_00190e24;\n  pcVar25 = param_1;\n  pcVar4 = param_3;\n  pcStack_80 = unaff_s1;\n  pcStack_7c = unaff_s2;\n  pcStack_70 = unaff_s5;\n  if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  pcVar14 = *(code **)puVar2;\n  if (local_2c == pcVar14) {\n    return pcVar14;\n  }\n  pcVar27 = FUN_000e6550;\n  puVar23 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar2;\n  pcVar17 = *(code **)(puVar23 + 0xaa8d4);\n  pcVar19 = *(code **)(pcVar25 + 8);\n  iStack_94 = 0;\n  pcStack_90 = (code *)0x0;\n  pcStack_8c = *(code **)pcVar17;\n  pcVar3 = pcVar25;\n  pcVar26 = param_2;\n  pcVar14 = pcVar4;\n  pcStack_e8 = unaff_s0;\n  pcVar16 = pcStack_80;\n  pcVar21 = pcStack_70;\n  pcVar22 = unaff_s6;\n  pcStack_84 = unaff_s0;\n  pcStack_74 = pcVar20;\n  pcStack_6c = unaff_s6;\n  pcStack_68 = unaff_s7;\n  pcStack_64 = pcVar27;\n  if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;\n  uVar5 = (uint)(byte)*param_2;\n  pcVar22 = (code *)(uVar5 ^ 1);\n  if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pcVar26 = pcStack_90;\n  pcStack_e8 = param_2;\n  pcVar16 = pcVar25;\n  pcVar20 = param_4;\n  pcVar21 = pcVar4;\n  if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }\n  pcVar25 = *(code **)(puVar23 + 0xaa8a8);\n  (*pcVar25)();\n  piVar15 = *(int **)(pcVar25 + 0xaa46c);\n  uVar5 = *(uint *)(pcVar3 + 8);\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar15;\n  pcStack_e4 = pcVar16;\n  pcStack_e0 = pcVar17;\n  pcStack_dc = pcVar19;\n  pcStack_d8 = pcVar20;\n  pcStack_d4 = pcVar21;\n  pcStack_d0 = pcVar22;\n  pcStack_cc = unaff_s7;\n  if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }\n  do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "code * FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)\n\n{\n  code cVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  char cVar10;\n  code *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar11;\n  int iVar12;\n  uint uVar13;\n  int in_t0;\n  int in_t1;\n  code *unaff_s0;\n  code *pcVar14;\n  int *piVar15;\n  code *unaff_s1;\n  code *pcVar16;\n  code *unaff_s2;\n  code *pcVar17;\n  int iVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *unaff_s5;\n  code *pcVar21;\n  code *unaff_s6;\n  code *pcVar22;\n  code *unaff_s7;\n  undefined *puVar23;\n  int iVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  undefined1 auStack_15c [4];\n  uint uStack_158;\n  undefined4 uStack_140;\n  undefined1 uStack_134;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  undefined4 uStack_11c;\n  code *pcStack_118;\n  code *pcStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  undefined4 uStack_f4;\n  undefined4 uStack_f0;\n  int iStack_ec;\n  code *pcStack_e8;\n  code *pcStack_e4;\n  code *pcStack_e0;\n  code *pcStack_dc;\n  code *pcStack_d8;\n  code *pcStack_d4;\n  code *pcStack_d0;\n  code *pcStack_cc;\n  int iStack_94;\n  code *pcStack_90;\n  code *pcStack_8c;\n  code *pcStack_84;\n  code *pcStack_80;\n  code *pcStack_7c;\n  undefined *puStack_78;\n  code *pcStack_74;\n  code *pcStack_70;\n  code *pcStack_6c;\n  code *pcStack_68;\n  code *pcStack_64;\n  code *local_50;\n  code *local_4c;\n  code *local_48;\n  code *local_44;\n  int local_34;\n  code *local_30;\n  code *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00190e24;\n  pcVar20 = *(code **)(param_1 + 8);\n  local_34 = 0;\n  local_30 = (code *)0x0;\n  local_2c = *(code **)PTR___stack_chk_guard_00190e24;\n  pcVar25 = param_1;\n  pcVar4 = param_3;\n  pcStack_80 = unaff_s1;\n  pcStack_7c = unaff_s2;\n  pcStack_70 = unaff_s5;\n  if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  pcVar14 = *(code **)puVar2;\n  if (local_2c == pcVar14) {\n    return pcVar14;\n  }\n  pcVar27 = FUN_000e6550;\n  puVar23 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar2;\n  pcVar17 = *(code **)(puVar23 + 0xaa8d4);\n  pcVar19 = *(code **)(pcVar25 + 8);\n  iStack_94 = 0;\n  pcStack_90 = (code *)0x0;\n  pcStack_8c = *(code **)pcVar17;\n  pcVar3 = pcVar25;\n  pcVar26 = param_2;\n  pcVar14 = pcVar4;\n  pcStack_e8 = unaff_s0;\n  pcVar16 = pcStack_80;\n  pcVar21 = pcStack_70;\n  pcVar22 = unaff_s6;\n  pcStack_84 = unaff_s0;\n  pcStack_74 = pcVar20;\n  pcStack_6c = unaff_s6;\n  pcStack_68 = unaff_s7;\n  pcStack_64 = pcVar27;\n  if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;\n  uVar5 = (uint)(byte)*param_2;\n  pcVar22 = (code *)(uVar5 ^ 1);\n  if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pcVar26 = pcStack_90;\n  pcStack_e8 = param_2;\n  pcVar16 = pcVar25;\n  pcVar20 = param_4;\n  pcVar21 = pcVar4;\n  if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }\n  pcVar25 = *(code **)(puVar23 + 0xaa8a8);\n  (*pcVar25)();\n  piVar15 = *(int **)(pcVar25 + 0xaa46c);\n  uVar5 = *(uint *)(pcVar3 + 8);\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar15;\n  pcStack_e4 = pcVar16;\n  pcStack_e0 = pcVar17;\n  pcStack_dc = pcVar19;\n  pcStack_d8 = pcVar20;\n  pcStack_d4 = pcVar21;\n  pcStack_d0 = pcVar22;\n  pcStack_cc = unaff_s7;\n  if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }\n  do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );\n}" type_identifier (pointer_declarator "* FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)" * (function_declarator "FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)" identifier (parameter_list "(code *param_1,code *param_2,code *param_3,code *param_4)" ( (parameter_declaration "code *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "code *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  code cVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  char cVar10;\n  code *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar11;\n  int iVar12;\n  uint uVar13;\n  int in_t0;\n  int in_t1;\n  code *unaff_s0;\n  code *pcVar14;\n  int *piVar15;\n  code *unaff_s1;\n  code *pcVar16;\n  code *unaff_s2;\n  code *pcVar17;\n  int iVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *unaff_s5;\n  code *pcVar21;\n  code *unaff_s6;\n  code *pcVar22;\n  code *unaff_s7;\n  undefined *puVar23;\n  int iVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  undefined1 auStack_15c [4];\n  uint uStack_158;\n  undefined4 uStack_140;\n  undefined1 uStack_134;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  undefined4 uStack_11c;\n  code *pcStack_118;\n  code *pcStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  undefined4 uStack_f4;\n  undefined4 uStack_f0;\n  int iStack_ec;\n  code *pcStack_e8;\n  code *pcStack_e4;\n  code *pcStack_e0;\n  code *pcStack_dc;\n  code *pcStack_d8;\n  code *pcStack_d4;\n  code *pcStack_d0;\n  code *pcStack_cc;\n  int iStack_94;\n  code *pcStack_90;\n  code *pcStack_8c;\n  code *pcStack_84;\n  code *pcStack_80;\n  code *pcStack_7c;\n  undefined *puStack_78;\n  code *pcStack_74;\n  code *pcStack_70;\n  code *pcStack_6c;\n  code *pcStack_68;\n  code *pcStack_64;\n  code *local_50;\n  code *local_4c;\n  code *local_48;\n  code *local_44;\n  int local_34;\n  code *local_30;\n  code *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00190e24;\n  pcVar20 = *(code **)(param_1 + 8);\n  local_34 = 0;\n  local_30 = (code *)0x0;\n  local_2c = *(code **)PTR___stack_chk_guard_00190e24;\n  pcVar25 = param_1;\n  pcVar4 = param_3;\n  pcStack_80 = unaff_s1;\n  pcStack_7c = unaff_s2;\n  pcStack_70 = unaff_s5;\n  if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  pcVar14 = *(code **)puVar2;\n  if (local_2c == pcVar14) {\n    return pcVar14;\n  }\n  pcVar27 = FUN_000e6550;\n  puVar23 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar2;\n  pcVar17 = *(code **)(puVar23 + 0xaa8d4);\n  pcVar19 = *(code **)(pcVar25 + 8);\n  iStack_94 = 0;\n  pcStack_90 = (code *)0x0;\n  pcStack_8c = *(code **)pcVar17;\n  pcVar3 = pcVar25;\n  pcVar26 = param_2;\n  pcVar14 = pcVar4;\n  pcStack_e8 = unaff_s0;\n  pcVar16 = pcStack_80;\n  pcVar21 = pcStack_70;\n  pcVar22 = unaff_s6;\n  pcStack_84 = unaff_s0;\n  pcStack_74 = pcVar20;\n  pcStack_6c = unaff_s6;\n  pcStack_68 = unaff_s7;\n  pcStack_64 = pcVar27;\n  if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;\n  uVar5 = (uint)(byte)*param_2;\n  pcVar22 = (code *)(uVar5 ^ 1);\n  if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pcVar26 = pcStack_90;\n  pcStack_e8 = param_2;\n  pcVar16 = pcVar25;\n  pcVar20 = param_4;\n  pcVar21 = pcVar4;\n  if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }\n  pcVar25 = *(code **)(puVar23 + 0xaa8a8);\n  (*pcVar25)();\n  piVar15 = *(int **)(pcVar25 + 0xaa46c);\n  uVar5 = *(uint *)(pcVar3 + 8);\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar15;\n  pcStack_e4 = pcVar16;\n  pcStack_e0 = pcVar17;\n  pcStack_dc = pcVar19;\n  pcStack_d8 = pcVar20;\n  pcStack_d4 = pcVar21;\n  pcStack_d0 = pcVar22;\n  pcStack_cc = unaff_s7;\n  if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }\n  do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );\n}" { (declaration "code cVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int in_t0;" primitive_type identifier ;) (declaration "int in_t1;" primitive_type identifier ;) (declaration "code *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "code *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "code *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "code *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcStack_1ac;" type_identifier (pointer_declarator "*pcStack_1ac" * identifier) ;) (declaration "int iStack_16c;" primitive_type identifier ;) (declaration "int iStack_168;" primitive_type identifier ;) (declaration "undefined1 auStack_15c [4];" type_identifier (array_declarator "auStack_15c [4]" identifier [ number_literal ]) ;) (declaration "uint uStack_158;" type_identifier identifier ;) (declaration "undefined4 uStack_140;" type_identifier identifier ;) (declaration "undefined1 uStack_134;" type_identifier identifier ;) (declaration "undefined4 uStack_124;" type_identifier identifier ;) (declaration "undefined4 uStack_120;" type_identifier identifier ;) (declaration "undefined4 uStack_11c;" type_identifier identifier ;) (declaration "code *pcStack_118;" type_identifier (pointer_declarator "*pcStack_118" * identifier) ;) (declaration "code *pcStack_114;" type_identifier (pointer_declarator "*pcStack_114" * identifier) ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "undefined4 uStack_104;" type_identifier identifier ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "undefined4 uStack_fc;" type_identifier identifier ;) (declaration "undefined4 uStack_f8;" type_identifier identifier ;) (declaration "undefined4 uStack_f4;" type_identifier identifier ;) (declaration "undefined4 uStack_f0;" type_identifier identifier ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "code *pcStack_e8;" type_identifier (pointer_declarator "*pcStack_e8" * identifier) ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "code *pcStack_e0;" type_identifier (pointer_declarator "*pcStack_e0" * identifier) ;) (declaration "code *pcStack_dc;" type_identifier (pointer_declarator "*pcStack_dc" * identifier) ;) (declaration "code *pcStack_d8;" type_identifier (pointer_declarator "*pcStack_d8" * identifier) ;) (declaration "code *pcStack_d4;" type_identifier (pointer_declarator "*pcStack_d4" * identifier) ;) (declaration "code *pcStack_d0;" type_identifier (pointer_declarator "*pcStack_d0" * identifier) ;) (declaration "code *pcStack_cc;" type_identifier (pointer_declarator "*pcStack_cc" * identifier) ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "code *pcStack_90;" type_identifier (pointer_declarator "*pcStack_90" * identifier) ;) (declaration "code *pcStack_8c;" type_identifier (pointer_declarator "*pcStack_8c" * identifier) ;) (declaration "code *pcStack_84;" type_identifier (pointer_declarator "*pcStack_84" * identifier) ;) (declaration "code *pcStack_80;" type_identifier (pointer_declarator "*pcStack_80" * identifier) ;) (declaration "code *pcStack_7c;" type_identifier (pointer_declarator "*pcStack_7c" * identifier) ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "code *pcStack_74;" type_identifier (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "code *pcStack_70;" type_identifier (pointer_declarator "*pcStack_70" * identifier) ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "code *pcStack_68;" type_identifier (pointer_declarator "*pcStack_68" * identifier) ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "code *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "code *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "code *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "code *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "code *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "pcVar20 = *(code **)(param_1 + 8);" (assignment_expression "pcVar20 = *(code **)(param_1 + 8)" identifier = (pointer_expression "*(code **)(param_1 + 8)" * (cast_expression "(code **)(param_1 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = *(code **)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_2c = *(code **)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(code **)PTR___stack_chk_guard_00190e24" * (cast_expression "(code **)PTR___stack_chk_guard_00190e24" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar25 = param_1;" (assignment_expression "pcVar25 = param_1" identifier = identifier) ;) (expression_statement "pcVar4 = param_3;" (assignment_expression "pcVar4 = param_3" identifier = identifier) ;) (expression_statement "pcStack_80 = unaff_s1;" (assignment_expression "pcStack_80 = unaff_s1" identifier = identifier) ;) (expression_statement "pcStack_7c = unaff_s2;" (assignment_expression "pcStack_7c = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_70 = unaff_s5;" (assignment_expression "pcStack_70 = unaff_s5" identifier = identifier) ;) (if_statement "if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }" if (parenthesized_expression "((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0))" ( (binary_expression "(pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)" (parenthesized_expression "(pcVar20 != (code *)0x0)" ( (binary_expression "pcVar20 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcStack_80 = param_2, param_2 != (code *)0x0)" ( (comma_expression "pcStack_80 = param_2, param_2 != (code *)0x0" (assignment_expression "pcStack_80 = param_2" identifier = identifier) , (binary_expression "param_2 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }" { (expression_statement "pcVar14 = (code *)(uint)(byte)*param_2;" (assignment_expression "pcVar14 = (code *)(uint)(byte)*param_2" identifier = (binary_expression "(code *)(uint)(byte)*param_2" (cast_expression "(code *)(uint)(byte)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier )))) * identifier)) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) (expression_statement "unaff_s7 = pcVar14;" (assignment_expression "unaff_s7 = pcVar14" identifier = identifier) ;) (if_statement "if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }" if (parenthesized_expression "(pcVar14 == (code *)&DAT_00000031)" ( (binary_expression "pcVar14 == (code *)&DAT_00000031" identifier == (cast_expression "(code *)&DAT_00000031" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000031" & identifier))) )) (compound_statement "{\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }" { (expression_statement "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);" (assignment_expression "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(param_1 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(param_1 + 0x38) - 1)" ( (binary_expression "*(uint *)(param_1 + 0x38) - 1" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*(code **)(param_1 + 0x38) = unaff_s0;" (assignment_expression "*(code **)(param_1 + 0x38) = unaff_s0" (pointer_expression "*(code **)(param_1 + 0x38)" * (cast_expression "(code **)(param_1 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar25 = unaff_s0;" (assignment_expression "pcVar25 = unaff_s0" identifier = identifier) ;) (if_statement "if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }" if (parenthesized_expression "(param_4 != (code *)0x0)" ( (binary_expression "param_4 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar25 = param_3;\n      }" { (expression_statement "pcVar25 = param_3;" (assignment_expression "pcVar25 = param_3" identifier = identifier) ;) })) (expression_statement "FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);" (call_expression "FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25)" identifier (argument_list "(param_1,param_2,unaff_s0,pcVar25)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pcVar4 = (code *)0x0;" (assignment_expression "pcVar4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (code *)0x0;" (assignment_expression "local_50 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar3 = param_3;" (assignment_expression "pcVar3 = param_3" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(pcVar20,0xb)" ( identifier , number_literal ))) ;) (labeled_statement "LAB_000e6494:\n      pcVar25 = pcVar20;" statement_identifier : (expression_statement "pcVar25 = pcVar20;" (assignment_expression "pcVar25 = pcVar20" identifier = identifier) ;)) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xd78)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0xd78)" ( (binary_expression "PTR_LAB_00190bc0 + 0xd78" identifier + number_literal) )))) )) (argument_list "(pcVar20,unaff_s0)" ( identifier , identifier ))) ;) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (expression_statement "unaff_s0 = pcVar14;" (assignment_expression "unaff_s0 = pcVar14" identifier = identifier) ;) (if_statement "if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }" if (parenthesized_expression "(&DAT_00000031 < pcVar14)" ( (binary_expression "&DAT_00000031 < pcVar14" (pointer_expression "&DAT_00000031" & identifier) < identifier) )) (compound_statement "{\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }" { (if_statement "if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }" if (parenthesized_expression "(pcVar14 < (code *)0x3a)" ( (binary_expression "pcVar14 < (code *)0x3a" identifier < (cast_expression "(code *)0x3a" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }" { (if_statement "if (&DAT_00000033 < pcVar14) goto LAB_000e6334;" if (parenthesized_expression "(&DAT_00000033 < pcVar14)" ( (binary_expression "&DAT_00000033 < pcVar14" (pointer_expression "&DAT_00000033" & identifier) < identifier) )) (goto_statement "goto LAB_000e6334;" goto statement_identifier ;)) (expression_statement "pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);" (assignment_expression "pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34)" identifier = (cast_expression "(code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34)" identifier (argument_list "(param_1,*(uint *)(param_2 + 0xc),&local_34)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , (pointer_expression "&local_34" & identifier) ))))) ;) (expression_statement "local_50 = (code *)0x0;" (assignment_expression "local_50 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000e6238;" goto statement_identifier ;) })) (if_statement "if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }" if (parenthesized_expression "(pcVar14 != (code *)0x9c)" ( (binary_expression "pcVar14 != (code *)0x9c" identifier != (cast_expression "(code *)0x9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }" { (if_statement "if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;" if (parenthesized_expression "(pcVar14 != (code *)0xa3)" ( (binary_expression "pcVar14 != (code *)0xa3" identifier != (cast_expression "(code *)0xa3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e63e8;" goto statement_identifier ;)) (expression_statement "bVar11 = (byte)param_2[0x28] ^ 0x9c;" (assignment_expression "bVar11 = (byte)param_2[0x28] ^ 0x9c" identifier = (binary_expression "(byte)param_2[0x28] ^ 0x9c" (cast_expression "(byte)param_2[0x28]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_2[0x28]" identifier [ number_literal ])) ^ number_literal)) ;) (if_statement "if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }" if (parenthesized_expression "((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'))" ( (binary_expression "(bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) == (parenthesized_expression "(*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" * (cast_expression "(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" ( (binary_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4" (pointer_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8)" * (cast_expression "(int *)(*(uint *)(param_2 + 0x10) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(param_2 + 0x10) + 8)" ( (binary_expression "*(uint *)(param_2 + 0x10) + 8" (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }" { (expression_statement "pcVar3 = (code *)&DAT_00000010;" (assignment_expression "pcVar3 = (code *)&DAT_00000010" identifier = (cast_expression "(code *)&DAT_00000010" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000010" & identifier))) ;) (if_statement "if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar3 = (code *)0x0;\n          }" { (expression_statement "pcVar3 = (code *)0x0;" (assignment_expression "pcVar3 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));" (call_expression "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc))" identifier (argument_list "(param_1,*(uint *)(param_2 + 0xc))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }" else (compound_statement "{\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }" { (expression_statement "pcVar3 = (code *)&DAT_00000010;" (assignment_expression "pcVar3 = (code *)&DAT_00000010" identifier = (cast_expression "(code *)&DAT_00000010" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000010" & identifier))) ;) (if_statement "if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar3 = (code *)0x0;\n          }" { (expression_statement "pcVar3 = (code *)0x0;" (assignment_expression "pcVar3 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" identifier (argument_list "()" ( ))) ;) }))) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (labeled_statement "LAB_000e631c:\n      pcVar3 = (code *)0x34;" statement_identifier : (expression_statement "pcVar3 = (code *)0x34;" (assignment_expression "pcVar3 = (code *)0x34" identifier = (cast_expression "(code *)0x34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }" if (parenthesized_expression "(pcVar14 == (code *)0x2d)" ( (binary_expression "pcVar14 == (code *)0x2d" identifier == (cast_expression "(code *)0x2d" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar3 = (code *)0x35;\n      }" { (expression_statement "pcVar3 = (code *)0x35;" (assignment_expression "pcVar3 = (code *)0x35" identifier = (cast_expression "(code *)0x35" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "unaff_s6 = (code *)0x80;" (assignment_expression "unaff_s6 = (code *)0x80" identifier = (cast_expression "(code *)0x80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar14 = pcVar3;" (assignment_expression "pcVar14 = pcVar3" identifier = identifier) ;) (labeled_statement "LAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);" statement_identifier : (expression_statement "pcVar8 = *(char **)(param_2 + 0xc);" (assignment_expression "pcVar8 = *(char **)(param_2 + 0xc)" identifier = (pointer_expression "*(char **)(param_2 + 0xc)" * (cast_expression "(char **)(param_2 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "cVar10 = *pcVar8;" (assignment_expression "cVar10 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }" if (parenthesized_expression "(cVar10 == -0x5c)" ( (binary_expression "cVar10 == -0x5c" identifier == number_literal) )) (compound_statement "{\n        cVar10 = pcVar8[0x28];\n      }" { (expression_statement "cVar10 = pcVar8[0x28];" (assignment_expression "cVar10 = pcVar8[0x28]" identifier = (subscript_expression "pcVar8[0x28]" identifier [ number_literal ])) ;) })) (expression_statement "unaff_s7 = pcVar14;" (assignment_expression "unaff_s7 = pcVar14" identifier = identifier) ;) (if_statement "if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" if (parenthesized_expression "(cVar10 == -0x5b)" ( (binary_expression "cVar10 == -0x5b" identifier == number_literal) )) (compound_statement "{\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }" { (expression_statement "iVar24 = **(int **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = **(int **)(pcVar8 + 0x14)" identifier = (pointer_expression "**(int **)(pcVar8 + 0x14)" * (pointer_expression "*(int **)(pcVar8 + 0x14)" * (cast_expression "(int **)(pcVar8 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x14)" ( (binary_expression "pcVar8 + 0x14" identifier + number_literal) )))))) ;) (labeled_statement "LAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;" statement_identifier : (expression_statement "unaff_s0 = (code *)PTR_LAB_00190c58;" (assignment_expression "unaff_s0 = (code *)PTR_LAB_00190c58" identifier = (cast_expression "(code *)PTR_LAB_00190c58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (1 < iVar24) goto LAB_000e63e8;" if (parenthesized_expression "(1 < iVar24)" ( (binary_expression "1 < iVar24" number_literal < identifier) )) (goto_statement "goto LAB_000e63e8;" goto statement_identifier ;)) }) (else_clause "else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" else (if_statement "if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" if (parenthesized_expression "(cVar10 == '\x7f')" ( (binary_expression "cVar10 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" { (expression_statement "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14)" identifier = (pointer_expression "*(int *)**(undefined4 **)(pcVar8 + 0x14)" * (cast_expression "(int *)**(undefined4 **)(pcVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar8 + 0x14)" * (pointer_expression "*(undefined4 **)(pcVar8 + 0x14)" * (cast_expression "(undefined4 **)(pcVar8 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x14)" ( (binary_expression "pcVar8 + 0x14" identifier + number_literal) )))))))) ;) (goto_statement "goto LAB_000e63d8;" goto statement_identifier ;) })))) (expression_statement "unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);" (assignment_expression "unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8)" identifier = (cast_expression "(code *)(PTR_LAB_00190c58 + -0x57b8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190c58 + -0x57b8)" ( (binary_expression "PTR_LAB_00190c58 + -0x57b8" identifier + number_literal) )))) ;) (expression_statement "pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);" (assignment_expression "pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34)" identifier = (cast_expression "(code *)FUN_000ea848(param_1,pcVar8,&local_34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(param_1,pcVar8,&local_34)" identifier (argument_list "(param_1,pcVar8,&local_34)" ( identifier , identifier , (pointer_expression "&local_34" & identifier) ))))) ;) (expression_statement "local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);" (assignment_expression "local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30)" identifier = (cast_expression "(code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30)" identifier (argument_list "(param_1,*(uint *)(param_2 + 0x10),&local_30)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) , (pointer_expression "&local_30" & identifier) ))))) ;) (expression_statement "pcVar4 = *(code **)(param_2 + 0x10);" (assignment_expression "pcVar4 = *(code **)(param_2 + 0x10)" identifier = (pointer_expression "*(code **)(param_2 + 0x10)" * (cast_expression "(code **)(param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar3 = pcVar14;" (assignment_expression "pcVar3 = pcVar14" identifier = identifier) ;) (expression_statement "local_50 = pcVar20;" (assignment_expression "local_50 = pcVar20" identifier = identifier) ;) (expression_statement "local_48 = param_3;" (assignment_expression "local_48 = param_3" identifier = identifier) ;) (expression_statement "local_44 = unaff_s6;" (assignment_expression "local_44 = unaff_s6" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));" (call_expression "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc))" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc4 + -0x59dc)" * (cast_expression "(code *)(PTR_LAB_00190bc4 + -0x59dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc4 + -0x59dc)" ( (binary_expression "PTR_LAB_00190bc4 + -0x59dc" identifier + number_literal) )))) )) (argument_list "(param_1,*(uint *)(param_2 + 0xc))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }" else (compound_statement "{\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }" { (expression_statement "pcVar3 = param_4;" (assignment_expression "pcVar3 = param_4" identifier = identifier) ;) (if_statement "if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }" if (parenthesized_expression "(pcVar14 == (code *)0x2c)" ( (binary_expression "pcVar14 == (code *)0x2c" identifier == (cast_expression "(code *)0x2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }" { (expression_statement "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);" (assignment_expression "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(param_1 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(param_1 + 0x38) - 1)" ( (binary_expression "*(uint *)(param_1 + 0x38) - 1" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*(code **)(param_1 + 0x38) = unaff_s0;" (assignment_expression "*(code **)(param_1 + 0x38) = unaff_s0" (pointer_expression "*(code **)(param_1 + 0x38)" * (cast_expression "(code **)(param_1 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);" (call_expression "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10)" identifier (argument_list "(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , identifier , (binary_expression "(uint)param_4 ^ 0x10" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) ^ number_literal) ))) ;) (expression_statement "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));" (call_expression "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10))" identifier (argument_list "(param_1,*(uint *)(param_2 + 0x10))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) ))) ;) (goto_statement "goto LAB_000e6494;" goto statement_identifier ;) })) (if_statement "if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }" if (parenthesized_expression "(pcVar14 < (code *)0x2d)" ( (binary_expression "pcVar14 < (code *)0x2d" identifier < (cast_expression "(code *)0x2d" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }" { (if_statement "if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }" if (parenthesized_expression "(pcVar14 == (code *)&DAT_00000013)" ( (binary_expression "pcVar14 == (code *)&DAT_00000013" identifier == (cast_expression "(code *)&DAT_00000013" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000013" & identifier))) )) (compound_statement "{\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }" { (expression_statement "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));" (call_expression "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc))" identifier (argument_list "(param_1,*(uint *)(param_2 + 0xc))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ))) ;) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (expression_statement "unaff_s0 = (code *)PTR_LAB_00190bd0;" (assignment_expression "unaff_s0 = (code *)PTR_LAB_00190bd0" identifier = (cast_expression "(code *)PTR_LAB_00190bd0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }" if (parenthesized_expression "(pcVar14 == (code *)0x2b)" ( (binary_expression "pcVar14 == (code *)0x2b" identifier == (cast_expression "(code *)0x2b" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }" { (expression_statement "unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);" (assignment_expression "unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc)" identifier = (cast_expression "(code *)(PTR_LAB_00190bd0 + 0x60cc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bd0 + 0x60cc)" ( (binary_expression "PTR_LAB_00190bd0 + 0x60cc" identifier + number_literal) )))) ;) (expression_statement "FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));" (call_expression "FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc))" identifier (argument_list "(param_1,*(uint *)(param_2 + 0xc))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));" (call_expression "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10))" identifier (argument_list "(param_1,*(uint *)(param_2 + 0x10))" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) ))) ;) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;) })) (labeled_statement "LAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);" statement_identifier : (expression_statement "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);" (assignment_expression "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2)" identifier = (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4d8c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4d8c)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4d8c)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4d8c" identifier + number_literal) )))) )) (argument_list "(param_2)" ( identifier )))) ;)) (if_statement "if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }" { (expression_statement "pcVar25 = param_2;" (assignment_expression "pcVar25 = param_2" identifier = identifier) ;) (expression_statement "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();" (assignment_expression "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))()" identifier = (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4e14))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4e14))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4e14)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4e14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4e14)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4e14" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = param_4;" (assignment_expression "pcVar3 = param_4" identifier = identifier) ;) (if_statement "if (iVar24 != 0) goto joined_r0x000e64ac;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x000e64ac;" goto statement_identifier ;)) (expression_statement "pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);" (assignment_expression "pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34)" identifier = (cast_expression "(code *)FUN_000ea848(param_1,param_2,&local_34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(param_1,param_2,&local_34)" identifier (argument_list "(param_1,param_2,&local_34)" ( identifier , identifier , (pointer_expression "&local_34" & identifier) ))))) ;) (expression_statement "pcVar14 = (code *)0x12;" (assignment_expression "pcVar14 = (code *)0x12" identifier = (cast_expression "(code *)0x12" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);" (assignment_expression "param_4 = (code *)(uint)(unaff_s6 != (code *)0x0)" identifier = (cast_expression "(code *)(uint)(unaff_s6 != (code *)0x0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(unaff_s6 != (code *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s6 != (code *)0x0)" ( (binary_expression "unaff_s6 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (expression_statement "local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);" (assignment_expression "local_50 = (code *)(uint)(unaff_s6 != (code *)0x0)" identifier = (cast_expression "(code *)(uint)(unaff_s6 != (code *)0x0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(unaff_s6 != (code *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s6 != (code *)0x0)" ( (binary_expression "unaff_s6 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) }) (else_clause "else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }" else (compound_statement "{\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }" { (expression_statement "pcVar4 = (code *)0x0;" (assignment_expression "pcVar4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (code *)0x0;" (assignment_expression "local_50 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar14 = (code *)&DAT_0000000b;" (assignment_expression "pcVar14 = (code *)&DAT_0000000b" identifier = (cast_expression "(code *)&DAT_0000000b" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000b" & identifier))) ;) (expression_statement "param_4 = unaff_s6;" (assignment_expression "param_4 = unaff_s6" identifier = identifier) ;) }))) (labeled_statement "LAB_000e6238:\n        pcVar25 = pcVar20;" statement_identifier : (expression_statement "pcVar25 = pcVar20;" (assignment_expression "pcVar25 = pcVar20" identifier = identifier) ;)) (expression_statement "pcVar3 = param_3;" (assignment_expression "pcVar3 = param_3" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(pcVar20,pcVar14)" ( identifier , identifier ))) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) }) (else_clause "else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }" else (compound_statement "{\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }" { (if_statement "if (pcVar14 == (code *)0x2d) goto LAB_000e631c;" if (parenthesized_expression "(pcVar14 == (code *)0x2d)" ( (binary_expression "pcVar14 == (code *)0x2d" identifier == (cast_expression "(code *)0x2d" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e631c;" goto statement_identifier ;)) (if_statement "if (pcVar14 != (code *)0x30) goto LAB_000e63e8;" if (parenthesized_expression "(pcVar14 != (code *)0x30)" ( (binary_expression "pcVar14 != (code *)0x30" identifier != (cast_expression "(code *)0x30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e63e8;" goto statement_identifier ;)) (expression_statement "pcVar4 = param_2 + 0x14;" (assignment_expression "pcVar4 = param_2 + 0x14" identifier = (binary_expression "param_2 + 0x14" identifier + number_literal)) ;) (expression_statement "local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);" (assignment_expression "local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc)" identifier = (cast_expression "(code *)(PTR_LAB_00190bd0 + 0x60cc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bd0 + 0x60cc)" ( (binary_expression "PTR_LAB_00190bd0 + 0x60cc" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = param_3;" (assignment_expression "pcVar3 = param_3" identifier = identifier) ;) (expression_statement "local_4c = param_4;" (assignment_expression "local_4c = param_4" identifier = identifier) ;) (expression_statement "FUN_000ec9a4(param_1,param_2 + 0xc);" (call_expression "FUN_000ec9a4(param_1,param_2 + 0xc)" identifier (argument_list "(param_1,param_2 + 0xc)" ( identifier , (binary_expression "param_2 + 0xc" identifier + number_literal) ))) ;) }))) }))) (labeled_statement "joined_r0x000e64ac:\n    param_4 = pcVar3;" statement_identifier : (expression_statement "param_4 = pcVar3;" (assignment_expression "param_4 = pcVar3" identifier = identifier) ;)) (if_statement "if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" { (expression_statement "pcVar25 = param_1;" (assignment_expression "pcVar25 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x4854))();" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4854)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4854)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4854" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) (expression_statement "param_2 = local_30;" (assignment_expression "param_2 = local_30" identifier = identifier) ;) (expression_statement "pcStack_7c = param_1;" (assignment_expression "pcStack_7c = param_1" identifier = identifier) ;) (expression_statement "pcStack_70 = param_3;" (assignment_expression "pcStack_70 = param_3" identifier = identifier) ;) (if_statement "if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" if (parenthesized_expression "(local_30 != (code *)0x0)" ( (binary_expression "local_30 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" { (expression_statement "pcVar25 = param_1;" (assignment_expression "pcVar25 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x4854))();" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4854)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4854)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4854" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) })) (expression_statement "pcVar14 = *(code **)puVar2;" (assignment_expression "pcVar14 = *(code **)puVar2" identifier = (pointer_expression "*(code **)puVar2" * (cast_expression "(code **)puVar2" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (local_2c == pcVar14) {\n    return pcVar14;\n  }" if (parenthesized_expression "(local_2c == pcVar14)" ( (binary_expression "local_2c == pcVar14" identifier == identifier) )) (compound_statement "{\n    return pcVar14;\n  }" { (return_statement "return pcVar14;" return identifier ;) })) (expression_statement "pcVar27 = FUN_000e6550;" (assignment_expression "pcVar27 = FUN_000e6550" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar23 = PTR___stack_chk_fail_00190df8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_78 = puVar2;" (assignment_expression "puStack_78 = puVar2" identifier = identifier) ;) (expression_statement "pcVar17 = *(code **)(puVar23 + 0xaa8d4);" (assignment_expression "pcVar17 = *(code **)(puVar23 + 0xaa8d4)" identifier = (pointer_expression "*(code **)(puVar23 + 0xaa8d4)" * (cast_expression "(code **)(puVar23 + 0xaa8d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0xaa8d4)" ( (binary_expression "puVar23 + 0xaa8d4" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = *(code **)(pcVar25 + 8);" (assignment_expression "pcVar19 = *(code **)(pcVar25 + 8)" identifier = (pointer_expression "*(code **)(pcVar25 + 8)" * (cast_expression "(code **)(pcVar25 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 8)" ( (binary_expression "pcVar25 + 8" identifier + number_literal) ))))) ;) (expression_statement "iStack_94 = 0;" (assignment_expression "iStack_94 = 0" identifier = number_literal) ;) (expression_statement "pcStack_90 = (code *)0x0;" (assignment_expression "pcStack_90 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_8c = *(code **)pcVar17;" (assignment_expression "pcStack_8c = *(code **)pcVar17" identifier = (pointer_expression "*(code **)pcVar17" * (cast_expression "(code **)pcVar17" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar3 = pcVar25;" (assignment_expression "pcVar3 = pcVar25" identifier = identifier) ;) (expression_statement "pcVar26 = param_2;" (assignment_expression "pcVar26 = param_2" identifier = identifier) ;) (expression_statement "pcVar14 = pcVar4;" (assignment_expression "pcVar14 = pcVar4" identifier = identifier) ;) (expression_statement "pcStack_e8 = unaff_s0;" (assignment_expression "pcStack_e8 = unaff_s0" identifier = identifier) ;) (expression_statement "pcVar16 = pcStack_80;" (assignment_expression "pcVar16 = pcStack_80" identifier = identifier) ;) (expression_statement "pcVar21 = pcStack_70;" (assignment_expression "pcVar21 = pcStack_70" identifier = identifier) ;) (expression_statement "pcVar22 = unaff_s6;" (assignment_expression "pcVar22 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_84 = unaff_s0;" (assignment_expression "pcStack_84 = unaff_s0" identifier = identifier) ;) (expression_statement "pcStack_74 = pcVar20;" (assignment_expression "pcStack_74 = pcVar20" identifier = identifier) ;) (expression_statement "pcStack_6c = unaff_s6;" (assignment_expression "pcStack_6c = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_68 = unaff_s7;" (assignment_expression "pcStack_68 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar27;" (assignment_expression "pcStack_64 = pcVar27" identifier = identifier) ;) (if_statement "if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;" if (parenthesized_expression "((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0))" ( (binary_expression "(pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)" (parenthesized_expression "(pcVar19 == (code *)0x0)" ( (binary_expression "pcVar19 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcStack_e8 = param_2, param_2 == (code *)0x0)" ( (comma_expression "pcStack_e8 = param_2, param_2 == (code *)0x0" (assignment_expression "pcStack_e8 = param_2" identifier = identifier) , (binary_expression "param_2 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000e667c;" goto statement_identifier ;)) (expression_statement "uVar5 = (uint)(byte)*param_2;" (assignment_expression "uVar5 = (uint)(byte)*param_2" identifier = (binary_expression "(uint)(byte)*param_2" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "pcVar22 = (code *)(uVar5 ^ 1);" (assignment_expression "pcVar22 = (code *)(uVar5 ^ 1)" identifier = (cast_expression "(code *)(uVar5 ^ 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 ^ 1)" ( (binary_expression "uVar5 ^ 1" identifier ^ number_literal) )))) ;) (if_statement "if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }" if (parenthesized_expression "(uVar5 == 0x31)" ( (binary_expression "uVar5 == 0x31" identifier == number_literal) )) (compound_statement "{\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }" { (if_statement "if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }" if (parenthesized_expression "(param_4 == (code *)0x0)" ( (binary_expression "param_4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }" { (expression_statement "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);" (assignment_expression "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(pcVar25 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pcVar25 + 0x38) - 1)" ( (binary_expression "*(uint *)(pcVar25 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar25 + 0x38)" * (cast_expression "(uint *)(pcVar25 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x38)" ( (binary_expression "pcVar25 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*(code **)(pcVar25 + 0x38) = pcVar20;" (assignment_expression "*(code **)(pcVar25 + 0x38) = pcVar20" (pointer_expression "*(code **)(pcVar25 + 0x38)" * (cast_expression "(code **)(pcVar25 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x38)" ( (binary_expression "pcVar25 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_000e55ac();" (call_expression "FUN_000e55ac()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_2 = pcVar20;" (assignment_expression "param_2 = pcVar20" identifier = identifier) ;) (labeled_statement "LAB_000e6640:\n      pcVar3 = pcVar19;" statement_identifier : (expression_statement "pcVar3 = pcVar19;" (assignment_expression "pcVar3 = pcVar19" identifier = identifier) ;)) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20)" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))" ( (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78)" * (cast_expression "(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa670) + 0xd78)" ( (binary_expression "*(int *)(puVar23 + 0xaa670) + 0xd78" (pointer_expression "*(int *)(puVar23 + 0xaa670)" * (cast_expression "(int *)(puVar23 + 0xaa670)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa670)" ( (binary_expression "puVar23 + 0xaa670" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar19,pcVar20)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      FUN_000e55ac();\n    }" else (compound_statement "{\n      FUN_000e55ac();\n    }" { (expression_statement "FUN_000e55ac();" (call_expression "FUN_000e55ac()" identifier (argument_list "()" ( ))) ;) }))) (goto_statement "goto LAB_000e6654;" goto statement_identifier ;) })) (if_statement "if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" if (parenthesized_expression "(uVar5 < 0x32)" ( (binary_expression "uVar5 < 0x32" identifier < number_literal) )) (compound_statement "{\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }" { (if_statement "if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" if (parenthesized_expression "(uVar5 == 0x2c)" ( (binary_expression "uVar5 == 0x2c" identifier == number_literal) )) (compound_statement "{\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }" { (expression_statement "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);" (assignment_expression "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550)" identifier = (cast_expression "(code *)(*(int *)(puVar23 + 0xaa680) + 0x6550)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa680) + 0x6550)" ( (binary_expression "*(int *)(puVar23 + 0xaa680) + 0x6550" (pointer_expression "*(int *)(puVar23 + 0xaa680)" * (cast_expression "(int *)(puVar23 + 0xaa680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa680)" ( (binary_expression "puVar23 + 0xaa680" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_000e6550();" (call_expression "FUN_000e6550()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);" (call_expression "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" identifier (argument_list "(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) , identifier , identifier ))) ;) }) (else_clause "else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" else (if_statement "if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" if (parenthesized_expression "(uVar5 < 0x2d)" ( (binary_expression "uVar5 < 0x2d" identifier < number_literal) )) (compound_statement "{\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }" { (if_statement "if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }" if (parenthesized_expression "(uVar5 != 0x13)" ( (binary_expression "uVar5 != 0x13" identifier != number_literal) )) (compound_statement "{\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }" { (if_statement "if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }" if (parenthesized_expression "(uVar5 == 0x2b)" ( (binary_expression "uVar5 == 0x2b" identifier == number_literal) )) (compound_statement "{\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }" { (expression_statement "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);" (assignment_expression "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(pcVar25 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pcVar25 + 0x38) - 1)" ( (binary_expression "*(uint *)(pcVar25 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar25 + 0x38)" * (cast_expression "(uint *)(pcVar25 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x38)" ( (binary_expression "pcVar25 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*(code **)(pcVar25 + 0x38) = pcVar20;" (assignment_expression "*(code **)(pcVar25 + 0x38) = pcVar20" (pointer_expression "*(code **)(pcVar25 + 0x38)" * (cast_expression "(code **)(pcVar25 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x38)" ( (binary_expression "pcVar25 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);" (call_expression "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" identifier (argument_list "(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" identifier = identifier) ;) (goto_statement "goto LAB_000e6640;" goto statement_identifier ;) })) (labeled_statement "LAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);" statement_identifier : (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) ))))) ;)) (expression_statement "pcVar20 = pcVar22;" (assignment_expression "pcVar20 = pcVar22" identifier = identifier) ;) (goto_statement "goto LAB_000e689c;" goto statement_identifier ;) })) (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" else (compound_statement "{\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" { (if_statement "if (uVar5 == 0x2d) goto LAB_000e67d0;" if (parenthesized_expression "(uVar5 == 0x2d)" ( (binary_expression "uVar5 == 0x2d" identifier == number_literal) )) (goto_statement "goto LAB_000e67d0;" goto statement_identifier ;)) (if_statement "if (uVar5 != 0x30) goto LAB_000e6898;" if (parenthesized_expression "(uVar5 != 0x30)" ( (binary_expression "uVar5 != 0x30" identifier != number_literal) )) (goto_statement "goto LAB_000e6898;" goto statement_identifier ;)) (expression_statement "pcVar14 = param_2 + 0x14;" (assignment_expression "pcVar14 = param_2 + 0x14" identifier = (binary_expression "param_2 + 0x14" identifier + number_literal)) ;) (expression_statement "FUN_000ec9a4();" (call_expression "FUN_000ec9a4()" identifier (argument_list "()" ( ))) ;) }))))) (labeled_statement "LAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);" statement_identifier : (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) ))))) ;)) (if_statement "if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }" if (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }" { (labeled_statement "LAB_000e6660:\n      pcVar3 = pcVar25;" statement_identifier : (expression_statement "pcVar3 = pcVar25;" (assignment_expression "pcVar3 = pcVar25" identifier = identifier) ;)) (expression_statement "(*(code *)(iVar24 + -0x4854))();" (call_expression "(*(code *)(iVar24 + -0x4854))()" (parenthesized_expression "(*(code *)(iVar24 + -0x4854))" ( (pointer_expression "*(code *)(iVar24 + -0x4854)" * (cast_expression "(code *)(iVar24 + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x4854)" ( (binary_expression "iVar24 + -0x4854" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" else (compound_statement "{\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" { (expression_statement "pcVar20 = pcVar22;" (assignment_expression "pcVar20 = pcVar22" identifier = identifier) ;) (if_statement "if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }" if (parenthesized_expression "(uVar5 < 0x3a)" ( (binary_expression "uVar5 < 0x3a" identifier < number_literal) )) (compound_statement "{\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }" { (if_statement "if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }" if (parenthesized_expression "(0x33 < uVar5)" ( (binary_expression "0x33 < uVar5" number_literal < identifier) )) (compound_statement "{\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }" { (labeled_statement "LAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);" statement_identifier : (expression_statement "pcVar8 = *(char **)(param_2 + 0xc);" (assignment_expression "pcVar8 = *(char **)(param_2 + 0xc)" identifier = (pointer_expression "*(char **)(param_2 + 0xc)" * (cast_expression "(char **)(param_2 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "cVar10 = *pcVar8;" (assignment_expression "cVar10 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }" if (parenthesized_expression "(cVar10 == -0x5c)" ( (binary_expression "cVar10 == -0x5c" identifier == number_literal) )) (compound_statement "{\n          cVar10 = pcVar8[0x28];\n        }" { (expression_statement "cVar10 = pcVar8[0x28];" (assignment_expression "cVar10 = pcVar8[0x28]" identifier = (subscript_expression "pcVar8[0x28]" identifier [ number_literal ])) ;) })) (if_statement "if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" if (parenthesized_expression "(cVar10 == -0x5b)" ( (binary_expression "cVar10 == -0x5b" identifier == number_literal) )) (compound_statement "{\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }" { (expression_statement "iVar24 = **(int **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = **(int **)(pcVar8 + 0x14)" identifier = (pointer_expression "**(int **)(pcVar8 + 0x14)" * (pointer_expression "*(int **)(pcVar8 + 0x14)" * (cast_expression "(int **)(pcVar8 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x14)" ( (binary_expression "pcVar8 + 0x14" identifier + number_literal) )))))) ;) (labeled_statement "LAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;" statement_identifier : (if_statement "if (1 < iVar24) goto LAB_000e6898;" if (parenthesized_expression "(1 < iVar24)" ( (binary_expression "1 < iVar24" number_literal < identifier) )) (goto_statement "goto LAB_000e6898;" goto statement_identifier ;))) }) (else_clause "else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" else (if_statement "if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" if (parenthesized_expression "(cVar10 == '\x7f')" ( (binary_expression "cVar10 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" { (expression_statement "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14)" identifier = (pointer_expression "*(int *)**(undefined4 **)(pcVar8 + 0x14)" * (cast_expression "(int *)**(undefined4 **)(pcVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar8 + 0x14)" * (pointer_expression "*(undefined4 **)(pcVar8 + 0x14)" * (cast_expression "(undefined4 **)(pcVar8 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x14)" ( (binary_expression "pcVar8 + 0x14" identifier + number_literal) )))))))) ;) (goto_statement "goto LAB_000e688c;" goto statement_identifier ;) })))) (expression_statement "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);" (assignment_expression "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8)" identifier = (cast_expression "(code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa708) + -0x57b8)" ( (binary_expression "*(int *)(puVar23 + 0xaa708) + -0x57b8" (pointer_expression "*(int *)(puVar23 + 0xaa708)" * (cast_expression "(int *)(puVar23 + 0xaa708)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa708)" ( (binary_expression "puVar23 + 0xaa708" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);" (assignment_expression "unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94)" identifier = (cast_expression "(code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(pcVar25,pcVar8,&iStack_94)" identifier (argument_list "(pcVar25,pcVar8,&iStack_94)" ( identifier , identifier , (pointer_expression "&iStack_94" & identifier) ))))) ;) (expression_statement "FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);" (call_expression "FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90)" identifier (argument_list "(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) , (pointer_expression "&pcStack_90" & identifier) ))) ;) (expression_statement "pcVar14 = *(code **)(param_2 + 0x10);" (assignment_expression "pcVar14 = *(code **)(param_2 + 0x10)" identifier = (pointer_expression "*(code **)(param_2 + 0x10)" * (cast_expression "(code **)(param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22)" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))" ( (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc)" * (cast_expression "(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa674) + -0x59dc)" ( (binary_expression "*(int *)(puVar23 + 0xaa674) + -0x59dc" (pointer_expression "*(int *)(puVar23 + 0xaa674)" * (cast_expression "(int *)(puVar23 + 0xaa674)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa674)" ( (binary_expression "puVar23 + 0xaa674" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22)" ( identifier , (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , identifier , identifier ))) ;) (if_statement "if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }" if (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }" { (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000e6660;" goto statement_identifier ;) })) (goto_statement "goto LAB_000e6670;" goto statement_identifier ;) })) (expression_statement "pcVar14 = (code *)FUN_000ea848();" (assignment_expression "pcVar14 = (code *)FUN_000ea848()" identifier = (cast_expression "(code *)FUN_000ea848()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }" else (compound_statement "{\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }" { (if_statement "if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }" if (parenthesized_expression "(uVar5 == 0x9c)" ( (binary_expression "uVar5 == 0x9c" identifier == number_literal) )) (compound_statement "{\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }" { (labeled_statement "LAB_000e67d0:\n        pcVar22 = (code *)0x34;" statement_identifier : (expression_statement "pcVar22 = (code *)0x34;" (assignment_expression "pcVar22 = (code *)0x34" identifier = (cast_expression "(code *)0x34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }" if (parenthesized_expression "(uVar5 != 0x2d)" ( (binary_expression "uVar5 != 0x2d" identifier != number_literal) )) (compound_statement "{\n          pcVar22 = (code *)0x35;\n        }" { (expression_statement "pcVar22 = (code *)0x35;" (assignment_expression "pcVar22 = (code *)0x35" identifier = (cast_expression "(code *)0x35" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "param_4 = (code *)0x80;" (assignment_expression "param_4 = (code *)0x80" identifier = (cast_expression "(code *)0x80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000e67e4;" goto statement_identifier ;) })) (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }" if (parenthesized_expression "(uVar5 == 0xa3)" ( (binary_expression "uVar5 == 0xa3" identifier == number_literal) )) (compound_statement "{\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }" { (if_statement "if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }" if (parenthesized_expression "((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'))" ( (binary_expression "(param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" (parenthesized_expression "(param_2[0x28] == (code)0x9c)" ( (binary_expression "param_2[0x28] == (code)0x9c" (subscript_expression "param_2[0x28]" identifier [ number_literal ]) == (cast_expression "(code)0x9c" ( (type_descriptor "code" type_identifier) ) number_literal)) )) == (parenthesized_expression "(*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" * (cast_expression "(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" ( (binary_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4" (pointer_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8)" * (cast_expression "(int *)(*(uint *)(param_2 + 0x10) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(param_2 + 0x10) + 8)" ( (binary_expression "*(uint *)(param_2 + 0x10) + 8" (pointer_expression "*(uint *)(param_2 + 0x10)" * (cast_expression "(uint *)(param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          FUN_000e60cc();\n        }" { (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          FUN_000e6550();\n        }" else (compound_statement "{\n          FUN_000e6550();\n        }" { (expression_statement "FUN_000e6550();" (call_expression "FUN_000e6550()" identifier (argument_list "()" ( ))) ;) }))) (goto_statement "goto LAB_000e6654;" goto statement_identifier ;) })) (labeled_statement "LAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);" statement_identifier : (expression_statement "iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);" (assignment_expression "iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2)" identifier = (call_expression "(*(code *)(iVar24 + -0x4e14))(param_2)" (parenthesized_expression "(*(code *)(iVar24 + -0x4e14))" ( (pointer_expression "*(code *)(iVar24 + -0x4e14)" * (cast_expression "(code *)(iVar24 + -0x4e14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x4e14)" ( (binary_expression "iVar24 + -0x4e14" identifier + number_literal) )))) )) (argument_list "(param_2)" ( identifier )))) ;)) (if_statement "if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }" { (expression_statement "pcVar3 = param_2;" (assignment_expression "pcVar3 = param_2" identifier = identifier) ;) (expression_statement "iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();" (assignment_expression "iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))()" identifier = (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))()" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))" ( (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c)" * (cast_expression "(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa654) + -0x4d8c)" ( (binary_expression "*(int *)(puVar23 + 0xaa654) + -0x4d8c" (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" identifier = identifier) ;) (if_statement "if (iVar24 != 0) goto LAB_000e6654;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000e6654;" goto statement_identifier ;)) (expression_statement "param_4 = (code *)(uint)(param_4 != (code *)0x0);" (assignment_expression "param_4 = (code *)(uint)(param_4 != (code *)0x0)" identifier = (cast_expression "(code *)(uint)(param_4 != (code *)0x0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(param_4 != (code *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 != (code *)0x0)" ( (binary_expression "param_4 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (expression_statement "pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);" (assignment_expression "pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94)" identifier = (cast_expression "(code *)FUN_000ea848(pcVar25,param_2,&iStack_94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ea848(pcVar25,param_2,&iStack_94)" identifier (argument_list "(pcVar25,param_2,&iStack_94)" ( identifier , identifier , (pointer_expression "&iStack_94" & identifier) ))))) ;) (expression_statement "pcVar22 = (code *)&DAT_00000014;" (assignment_expression "pcVar22 = (code *)&DAT_00000014" identifier = (cast_expression "(code *)&DAT_00000014" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000014" & identifier))) ;) }) (else_clause "else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }" else (compound_statement "{\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }" { (expression_statement "pcVar14 = (code *)0x0;" (assignment_expression "pcVar14 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar22 = (code *)&DAT_0000000b;" (assignment_expression "pcVar22 = (code *)&DAT_0000000b" identifier = (cast_expression "(code *)&DAT_0000000b" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000b" & identifier))) ;) }))) }))) (expression_statement "pcVar3 = pcVar19;" (assignment_expression "pcVar3 = pcVar19" identifier = identifier) ;) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4)" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))" ( (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc)" * (cast_expression "(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa670) + 0x10fc)" ( (binary_expression "*(int *)(puVar23 + 0xaa670) + 0x10fc" (pointer_expression "*(int *)(puVar23 + 0xaa670)" * (cast_expression "(int *)(puVar23 + 0xaa670)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa670)" ( (binary_expression "puVar23 + 0xaa670" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar19,pcVar22,pcVar14,pcVar4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" identifier = identifier) ;) (if_statement "if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }" if (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }" { (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" identifier = (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000e6660;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000e6670:\n  pcVar26 = pcStack_90;" statement_identifier : (expression_statement "pcVar26 = pcStack_90;" (assignment_expression "pcVar26 = pcStack_90" identifier = identifier) ;)) (expression_statement "pcStack_e8 = param_2;" (assignment_expression "pcStack_e8 = param_2" identifier = identifier) ;) (expression_statement "pcVar16 = pcVar25;" (assignment_expression "pcVar16 = pcVar25" identifier = identifier) ;) (expression_statement "pcVar20 = param_4;" (assignment_expression "pcVar20 = param_4" identifier = identifier) ;) (expression_statement "pcVar21 = pcVar4;" (assignment_expression "pcVar21 = pcVar4" identifier = identifier) ;) (if_statement "if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }" if (parenthesized_expression "(pcStack_90 != (code *)0x0)" ( (binary_expression "pcStack_90 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }" { (expression_statement "pcVar3 = pcVar25;" (assignment_expression "pcVar3 = pcVar25" identifier = identifier) ;) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))()" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))" ( (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854)" * (cast_expression "(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0xaa654) + -0x4854)" ( (binary_expression "*(int *)(puVar23 + 0xaa654) + -0x4854" (pointer_expression "*(int *)(puVar23 + 0xaa654)" * (cast_expression "(int *)(puVar23 + 0xaa654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0xaa654)" ( (binary_expression "puVar23 + 0xaa654" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }" statement_identifier : (if_statement "if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }" if (parenthesized_expression "(pcStack_8c == *(code **)pcVar17)" ( (binary_expression "pcStack_8c == *(code **)pcVar17" identifier == (pointer_expression "*(code **)pcVar17" * (cast_expression "(code **)pcVar17" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return *(code **)pcVar17;\n  }" { (return_statement "return *(code **)pcVar17;" return (pointer_expression "*(code **)pcVar17" * (cast_expression "(code **)pcVar17" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "pcVar25 = *(code **)(puVar23 + 0xaa8a8);" (assignment_expression "pcVar25 = *(code **)(puVar23 + 0xaa8a8)" identifier = (pointer_expression "*(code **)(puVar23 + 0xaa8a8)" * (cast_expression "(code **)(puVar23 + 0xaa8a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0xaa8a8)" ( (binary_expression "puVar23 + 0xaa8a8" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar15 = *(int **)(pcVar25 + 0xaa46c);" (assignment_expression "piVar15 = *(int **)(pcVar25 + 0xaa46c)" identifier = (pointer_expression "*(int **)(pcVar25 + 0xaa46c)" * (cast_expression "(int **)(pcVar25 + 0xaa46c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0xaa46c)" ( (binary_expression "pcVar25 + 0xaa46c" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(pcVar3 + 8);" (assignment_expression "uVar5 = *(uint *)(pcVar3 + 8)" identifier = (pointer_expression "*(uint *)(pcVar3 + 8)" * (cast_expression "(uint *)(pcVar3 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 8)" ( (binary_expression "pcVar3 + 8" identifier + number_literal) ))))) ;) (expression_statement "iStack_16c = 0;" (assignment_expression "iStack_16c = 0" identifier = number_literal) ;) (expression_statement "iStack_168 = 0;" (assignment_expression "iStack_168 = 0" identifier = number_literal) ;) (expression_statement "iStack_ec = *piVar15;" (assignment_expression "iStack_ec = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "pcStack_e4 = pcVar16;" (assignment_expression "pcStack_e4 = pcVar16" identifier = identifier) ;) (expression_statement "pcStack_e0 = pcVar17;" (assignment_expression "pcStack_e0 = pcVar17" identifier = identifier) ;) (expression_statement "pcStack_dc = pcVar19;" (assignment_expression "pcStack_dc = pcVar19" identifier = identifier) ;) (expression_statement "pcStack_d8 = pcVar20;" (assignment_expression "pcStack_d8 = pcVar20" identifier = identifier) ;) (expression_statement "pcStack_d4 = pcVar21;" (assignment_expression "pcStack_d4 = pcVar21" identifier = identifier) ;) (expression_statement "pcStack_d0 = pcVar22;" (assignment_expression "pcStack_d0 = pcVar22" identifier = identifier) ;) (expression_statement "pcStack_cc = unaff_s7;" (assignment_expression "pcStack_cc = unaff_s7" identifier = identifier) ;) (if_statement "if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar14 = (code *)0x0;\n  }" { (expression_statement "pcVar14 = (code *)0x0;" (assignment_expression "pcVar14 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" else (if_statement "if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" if (parenthesized_expression "(pcVar26 == (code *)0x0)" ( (binary_expression "pcVar26 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar5,0x49,0,pcVar14,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "pcVar16 = pcVar14;" (assignment_expression "pcVar16 = pcVar14" identifier = identifier) ;) }) (else_clause "else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" else (compound_statement "{\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" { (expression_statement "cVar1 = *pcVar26;" (assignment_expression "cVar1 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (expression_statement "uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;" (assignment_expression "uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff" identifier = (binary_expression "(uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff" (call_expression "(uint)((code *)(uint)(byte)cVar1 + -0x13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((code *)(uint)(byte)cVar1 + -0x13)" ( (binary_expression "(code *)(uint)(byte)cVar1 + -0x13" (cast_expression "(code *)(uint)(byte)cVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier))) + number_literal) ))) & number_literal)) ;) (if_statement "if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }" if (parenthesized_expression "(uVar6 < 0x97)" ( (binary_expression "uVar6 < 0x97" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }" { (expression_statement "pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();" (assignment_expression "pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))()" identifier = (cast_expression "(code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))()" (parenthesized_expression "(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))" ( (pointer_expression "*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68)" * (parenthesized_expression "(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68)" ( (binary_expression "pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68" (binary_expression "pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" * (cast_expression "(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" ( (binary_expression "*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4" (binary_expression "*(int *)(pcVar25 + 0xa9fa4) + 0x3d88" (pointer_expression "*(int *)(pcVar25 + 0xa9fa4)" * (cast_expression "(int *)(pcVar25 + 0xa9fa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xa9fa4)" ( (binary_expression "pcVar25 + 0xa9fa4" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar6 * 4" identifier * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar20;" return identifier ;) })) (expression_statement "puVar7 = *(uint **)(pcVar26 + 0x14);" (assignment_expression "puVar7 = *(uint **)(pcVar26 + 0x14)" identifier = (pointer_expression "*(uint **)(pcVar26 + 0x14)" * (cast_expression "(uint **)(pcVar26 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x14)" ( (binary_expression "pcVar26 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);" (assignment_expression "pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(pcVar3 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pcVar3 + 0x38) - 1)" ( (binary_expression "*(uint *)(pcVar3 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar3 + 0x38)" * (cast_expression "(uint *)(pcVar3 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x38)" ( (binary_expression "pcVar3 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "uVar6 = *puVar7;" (assignment_expression "uVar6 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(code **)(pcVar3 + 0x38) = pcVar20;" (assignment_expression "*(code **)(pcVar3 + 0x38) = pcVar20" (pointer_expression "*(code **)(pcVar3 + 0x38)" * (cast_expression "(code **)(pcVar3 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x38)" ( (binary_expression "pcVar3 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = *(uint *)(pcVar26 + 0xc);" (assignment_expression "uVar13 = *(uint *)(pcVar26 + 0xc)" identifier = (pointer_expression "*(uint *)(pcVar26 + 0xc)" * (cast_expression "(uint *)(pcVar26 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0xc)" ( (binary_expression "pcVar26 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }" { (expression_statement "pcVar26 = (code *)0x0;" (assignment_expression "pcVar26 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar17 = (code *)(uint)(byte)cVar1;" (assignment_expression "pcVar17 = (code *)(uint)(byte)cVar1" identifier = (cast_expression "(code *)(uint)(byte)cVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)cVar1" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) }) (else_clause "else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }" else (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1f0) + -0x69a4" (pointer_expression "*(int *)(pcVar25 + 0xaa1f0)" * (cast_expression "(int *)(pcVar25 + 0xaa1f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1f0)" ( (binary_expression "pcVar25 + 0xaa1f0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(auStack_15c)" ( identifier ))) ;) (expression_statement "uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);" (assignment_expression "uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c)" identifier = (call_expression "FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c)" identifier (argument_list "(pcVar3,auStack_15c,&iStack_16c)" ( identifier , identifier , (pointer_expression "&iStack_16c" & identifier) )))) ;) (expression_statement "uStack_134 = auStack_15c[0];" (assignment_expression "uStack_134 = auStack_15c[0]" identifier = (subscript_expression "auStack_15c[0]" identifier [ number_literal ])) ;) (expression_statement "pcVar26 = (code *)&uStack_124;" (assignment_expression "pcVar26 = (code *)&uStack_124" identifier = (cast_expression "(code *)&uStack_124" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_124" & identifier))) ;) (expression_statement "uStack_158 = uStack_158 & 0xffffefff;" (assignment_expression "uStack_158 = uStack_158 & 0xffffefff" identifier = (binary_expression "uStack_158 & 0xffffefff" identifier & number_literal)) ;) (expression_statement "auStack_15c[0] = (code)0xa4;" (assignment_expression "auStack_15c[0] = (code)0xa4" (subscript_expression "auStack_15c[0]" identifier [ number_literal ]) = (cast_expression "(code)0xa4" ( (type_descriptor "code" type_identifier) ) number_literal)) ;) (expression_statement "uStack_120 = 0;" (assignment_expression "uStack_120 = 0" identifier = number_literal) ;) (expression_statement "uStack_11c = 0;" (assignment_expression "uStack_11c = 0" identifier = number_literal) ;) (expression_statement "pcStack_114 = (code *)0x0;" (assignment_expression "pcStack_114 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_110 = 0;" (assignment_expression "uStack_110 = 0" identifier = number_literal) ;) (expression_statement "uStack_10c = 0;" (assignment_expression "uStack_10c = 0" identifier = number_literal) ;) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" identifier = number_literal) ;) (expression_statement "uStack_104 = 0;" (assignment_expression "uStack_104 = 0" identifier = number_literal) ;) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" identifier = number_literal) ;) (expression_statement "uStack_fc = 0;" (assignment_expression "uStack_fc = 0" identifier = number_literal) ;) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" identifier = number_literal) ;) (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" identifier = number_literal) ;) (expression_statement "uStack_124 = 0x35000000;" (assignment_expression "uStack_124 = 0x35000000" identifier = number_literal) ;) (expression_statement "pcVar17 = (code *)auStack_15c;" (assignment_expression "pcVar17 = (code *)auStack_15c" identifier = (cast_expression "(code *)auStack_15c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_118 = (code *)auStack_15c;" (assignment_expression "pcStack_118 = (code *)auStack_15c" identifier = (cast_expression "(code *)auStack_15c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "iStack_16c = 0;" (assignment_expression "iStack_16c = 0" identifier = number_literal) ;) (if_statement "if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }" if (parenthesized_expression "((int)(uVar6 - 1) < 1)" ( (binary_expression "(int)(uVar6 - 1) < 1" (cast_expression "(int)(uVar6 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 - 1)" ( (binary_expression "uVar6 - 1" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }" { (expression_statement "pcVar21 = *(code **)(pcVar25 + 0xaa208);" (assignment_expression "pcVar21 = *(code **)(pcVar25 + 0xaa208)" identifier = (pointer_expression "*(code **)(pcVar25 + 0xaa208)" * (cast_expression "(code **)(pcVar25 + 0xaa208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) ))))) ;) (expression_statement "pcStack_1ac = pcVar21 + 0xd78;" (assignment_expression "pcStack_1ac = pcVar21 + 0xd78" identifier = (binary_expression "pcVar21 + 0xd78" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }" else (compound_statement "{\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }" { (expression_statement "iVar18 = *(int *)(pcVar25 + 0xaa208);" (assignment_expression "iVar18 = *(int *)(pcVar25 + 0xaa208)" identifier = (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar25 + 0xaa2a0);" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0xaa2a0)" identifier = (pointer_expression "*(int *)(pcVar25 + 0xaa2a0)" * (cast_expression "(int *)(pcVar25 + 0xaa2a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa2a0)" ( (binary_expression "pcVar25 + 0xaa2a0" identifier + number_literal) ))))) ;) (expression_statement "pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);" (assignment_expression "pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78)" identifier = (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0xd78)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0xd78" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);" (assignment_expression "pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb)" identifier = (cast_expression "(code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb)" ( (binary_expression "puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb" (binary_expression "puVar7 + (uVar6 - 2 >> 1) * 10" identifier + (binary_expression "(uVar6 - 2 >> 1) * 10" (parenthesized_expression "(uVar6 - 2 >> 1)" ( (binary_expression "uVar6 - 2 >> 1" (binary_expression "uVar6 - 2" identifier - number_literal) >> number_literal) )) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar24 = *(int *)(pcVar25 + 0xaa218);" (assignment_expression "iVar24 = *(int *)(pcVar25 + 0xaa218)" identifier = (pointer_expression "*(int *)(pcVar25 + 0xaa218)" * (cast_expression "(int *)(pcVar25 + 0xaa218)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa218)" ( (binary_expression "pcVar25 + 0xaa218" identifier + number_literal) ))))) ;) (expression_statement "pcVar4 = (code *)(puVar7 + 1);" (assignment_expression "pcVar4 = (code *)(puVar7 + 1)" identifier = (cast_expression "(code *)(puVar7 + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) )))) ;) (do_statement "do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);" do (compound_statement "{\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      }" { (expression_statement "pcVar16 = *(code **)pcVar4;" (assignment_expression "pcVar16 = *(code **)pcVar4" identifier = (pointer_expression "*(code **)pcVar4" * (cast_expression "(code **)pcVar4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }" { (expression_statement "pcVar26 = *(code **)pcVar4;" (assignment_expression "pcVar26 = *(code **)pcVar4" identifier = (pointer_expression "*(code **)pcVar4" * (cast_expression "(code **)pcVar4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar16 = pcStack_114;" (assignment_expression "pcVar16 = pcStack_114" identifier = identifier) ;) })) (expression_statement "pcStack_114 = pcVar16;" (assignment_expression "pcStack_114 = pcVar16" identifier = identifier) ;) (expression_statement "pcVar21 = pcVar4 + 0x28;" (assignment_expression "pcVar21 = pcVar4 + 0x28" identifier = (binary_expression "pcVar4 + 0x28" identifier + number_literal)) ;) (expression_statement "pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);" (assignment_expression "pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1)" identifier = (cast_expression "(code *)(*(uint *)(pcVar3 + 0x38) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pcVar3 + 0x38) - 1)" ( (binary_expression "*(uint *)(pcVar3 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar3 + 0x38)" * (cast_expression "(uint *)(pcVar3 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x38)" ( (binary_expression "pcVar3 + 0x38" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*(code **)(pcVar3 + 0x38) = pcVar17;" (assignment_expression "*(code **)(pcVar3 + 0x38) = pcVar17" (pointer_expression "*(code **)(pcVar3 + 0x38)" * (cast_expression "(code **)(pcVar3 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x38)" ( (binary_expression "pcVar3 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);" (call_expression "(*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10)" (parenthesized_expression "(*(code *)(iVar24 + 0x6550))" ( (pointer_expression "*(code *)(iVar24 + 0x6550)" * (cast_expression "(code *)(iVar24 + 0x6550)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x6550)" ( (binary_expression "iVar24 + 0x6550" identifier + number_literal) )))) )) (argument_list "(pcVar3,pcVar26,pcVar17,0x10)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);" (call_expression "(*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14)" (parenthesized_expression "(*(code *)(iVar12 + -0x7cdc))" ( (pointer_expression "*(code *)(iVar12 + -0x7cdc)" * (cast_expression "(code *)(iVar12 + -0x7cdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -0x7cdc)" ( (binary_expression "iVar12 + -0x7cdc" identifier + number_literal) )))) )) (argument_list "(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14)" ( identifier , (pointer_expression "*(uint *)(pcVar4 + 0x14)" * (cast_expression "(uint *)(pcVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x14)" ( (binary_expression "pcVar4 + 0x14" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);" (call_expression "(*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0)" (parenthesized_expression "(*(code *)(iVar18 + 0x10fc))" ( (pointer_expression "*(code *)(iVar18 + 0x10fc)" * (cast_expression "(code *)(iVar18 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10fc)" ( (binary_expression "iVar18 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(uVar5,0xb,0,pcVar20,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*pcStack_1ac)(uVar5,pcVar17);" (call_expression "(*pcStack_1ac)(uVar5,pcVar17)" (parenthesized_expression "(*pcStack_1ac)" ( (pointer_expression "*pcStack_1ac" * identifier) )) (argument_list "(uVar5,pcVar17)" ( identifier , identifier ))) ;) (expression_statement "pcVar4 = pcVar21;" (assignment_expression "pcVar4 = pcVar21" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar19 != pcVar21)" ( (binary_expression "pcVar19 != pcVar21" identifier != identifier) )) ;) }))) (if_statement "if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }" if (parenthesized_expression "((uVar6 & 1) == 0)" ( (binary_expression "(uVar6 & 1) == 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar5,0x49,0,pcVar14,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }) (else_clause "else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }" else (compound_statement "{\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }" { (expression_statement "FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);" (call_expression "FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14)" identifier (argument_list "(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14)" ( identifier , (subscript_expression "puVar7[(uVar6 - 1) * 5 + 1]" identifier [ (binary_expression "(uVar6 - 1) * 5 + 1" (binary_expression "(uVar6 - 1) * 5" (parenthesized_expression "(uVar6 - 1)" ( (binary_expression "uVar6 - 1" identifier - number_literal) )) * number_literal) + number_literal) ]) , identifier ))) ;) }))) (expression_statement "(*pcStack_1ac)(uVar5,pcVar20);" (call_expression "(*pcStack_1ac)(uVar5,pcVar20)" (parenthesized_expression "(*pcStack_1ac)" ( (pointer_expression "*pcStack_1ac" * identifier) )) (argument_list "(uVar5,pcVar20)" ( identifier , identifier ))) ;) (if_statement "if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" if (parenthesized_expression "(iStack_16c != 0)" ( (binary_expression "iStack_16c != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x4854" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "pcStack_1ac = pcVar14;" (assignment_expression "pcStack_1ac = pcVar14" identifier = identifier) ;) })) (expression_statement "pcVar16 = pcVar14;" (assignment_expression "pcVar16 = pcVar14" identifier = identifier) ;) (expression_statement "pcVar22 = pcVar3;" (assignment_expression "pcVar22 = pcVar3" identifier = identifier) ;) (if_statement "if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" if (parenthesized_expression "(iStack_168 != 0)" ( (binary_expression "iStack_168 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x4854" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "pcStack_1ac = pcVar14;" (assignment_expression "pcStack_1ac = pcVar14" identifier = identifier) ;) })) }))))) (do_statement "do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  }" { (if_statement "if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }" if (parenthesized_expression "(iStack_ec == *piVar15)" ( (binary_expression "iStack_ec == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n      return pcVar14;\n    }" { (return_statement "return pcVar14;" return identifier ;) })) (expression_statement "iVar24 = iStack_ec;" (assignment_expression "iVar24 = iStack_ec" identifier = identifier) ;) (expression_statement "bVar11 = (**(code **)(pcVar25 + 0xaa440))();" (assignment_expression "bVar11 = (**(code **)(pcVar25 + 0xaa440))()" identifier = (call_expression "(**(code **)(pcVar25 + 0xaa440))()" (parenthesized_expression "(**(code **)(pcVar25 + 0xaa440))" ( (pointer_expression "**(code **)(pcVar25 + 0xaa440)" * (pointer_expression "*(code **)(pcVar25 + 0xaa440)" * (cast_expression "(code **)(pcVar25 + 0xaa440)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0xaa440)" ( (binary_expression "pcVar25 + 0xaa440" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;" (assignment_expression "*(byte *)(iVar24 + 0x28) = bVar11 & 0xc0" (pointer_expression "*(byte *)(iVar24 + 0x28)" * (cast_expression "(byte *)(iVar24 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x28)" ( (binary_expression "iVar24 + 0x28" identifier + number_literal) )))) = (binary_expression "bVar11 & 0xc0" identifier & number_literal)) ;) (expression_statement "FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);" (call_expression "FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3)" identifier (argument_list "(pcVar22,pcVar20,pcStack_1ac,0,3)" ( identifier , identifier , identifier , number_literal , number_literal ))) ;) (if_statement "if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }" if (parenthesized_expression "((int)pcVar19 < 2)" ( (binary_expression "(int)pcVar19 < 2" (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }" { (if_statement "if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }" if (parenthesized_expression "(pcVar19 == (code *)0x1)" ( (binary_expression "pcVar19 == (code *)0x1" identifier == (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }" { (labeled_statement "LAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);" statement_identifier : (expression_statement "uVar6 = *(uint *)(pcVar20 + 4);" (assignment_expression "uVar6 = *(uint *)(pcVar20 + 4)" identifier = (pointer_expression "*(uint *)(pcVar20 + 4)" * (cast_expression "(uint *)(pcVar20 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 4)" ( (binary_expression "pcVar20 + 4" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000e8104;" goto statement_identifier ;) })) }) (else_clause "else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }" else (compound_statement "{\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }" { (if_statement "if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;" if (parenthesized_expression "((*(uint *)(pcVar26 + 4) & 0x80) == 0)" ( (binary_expression "(*(uint *)(pcVar26 + 4) & 0x80) == 0" (parenthesized_expression "(*(uint *)(pcVar26 + 4) & 0x80)" ( (binary_expression "*(uint *)(pcVar26 + 4) & 0x80" (pointer_expression "*(uint *)(pcVar26 + 4)" * (cast_expression "(uint *)(pcVar26 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 4)" ( (binary_expression "pcVar26 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000e80f8;" goto statement_identifier ;)) (expression_statement "uVar6 = *(uint *)(pcVar20 + 0x18);" (assignment_expression "uVar6 = *(uint *)(pcVar20 + 0x18)" identifier = (pointer_expression "*(uint *)(pcVar20 + 0x18)" * (cast_expression "(uint *)(pcVar20 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x18)" ( (binary_expression "pcVar20 + 0x18" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);" statement_identifier : (expression_statement "in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);" (assignment_expression "in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6)" identifier = (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1f0) + 0xb8c" (pointer_expression "*(int *)(pcVar25 + 0xaa1f0)" * (cast_expression "(int *)(pcVar25 + 0xaa1f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1f0)" ( (binary_expression "pcVar25 + 0xaa1f0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar17,in_t1,pcVar19,uVar6)" ( identifier , identifier , identifier , identifier )))) ;)) }))) (expression_statement "uVar6 = *(uint *)(in_t1 + 4);" (assignment_expression "uVar6 = *(uint *)(in_t1 + 4)" identifier = (pointer_expression "*(uint *)(in_t1 + 4)" * (cast_expression "(uint *)(in_t1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t1 + 4)" ( (binary_expression "in_t1 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }" if (parenthesized_expression "((uVar6 & 0x20) == 0)" ( (binary_expression "(uVar6 & 0x20) == 0" (parenthesized_expression "(uVar6 & 0x20)" ( (binary_expression "uVar6 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }" { (expression_statement "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);" (assignment_expression "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" identifier = (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }" else (compound_statement "{\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }" { (if_statement "if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }" if (parenthesized_expression "(in_t0 == 0)" ( (binary_expression "in_t0 == 0" identifier == number_literal) )) (compound_statement "{\n        in_t0 = *(int *)(pcVar17 + 8);\n      }" { (expression_statement "in_t0 = *(int *)(pcVar17 + 8);" (assignment_expression "in_t0 = *(int *)(pcVar17 + 8)" identifier = (pointer_expression "*(int *)(pcVar17 + 8)" * (cast_expression "(int *)(pcVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 8)" ( (binary_expression "pcVar17 + 8" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);" (assignment_expression "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" identifier = (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" * (cast_expression "(int *)(pcVar25 + 0xaa208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa208)" ( (binary_expression "pcVar25 + 0xaa208" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);" (assignment_expression "uVar9 = (*pcVar17)(uVar5,0x52,0,0,0)" identifier = (call_expression "(*pcVar17)(uVar5,0x52,0,0,0)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar5,0x52,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar5,uVar9,in_t0,0xfffffffe)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "uVar6 = *(uint *)(in_t1 + 4);" (assignment_expression "uVar6 = *(uint *)(in_t1 + 4)" identifier = (pointer_expression "*(uint *)(in_t1 + 4)" * (cast_expression "(uint *)(in_t1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t1 + 4)" ( (binary_expression "in_t1 + 4" identifier + number_literal) ))))) ;) }))) (if_statement "if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }" if (parenthesized_expression "((uVar6 & 0x8000) == 0)" ( (binary_expression "(uVar6 & 0x8000) == 0" (parenthesized_expression "(uVar6 & 0x8000)" ( (binary_expression "uVar6 & 0x8000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }" { (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" identifier = number_literal) ;) (if_statement "if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }" if (parenthesized_expression "(*(uint *)(pcVar22 + 0x34) != 0)" ( (binary_expression "*(uint *)(pcVar22 + 0x34) != 0" (pointer_expression "*(uint *)(pcVar22 + 0x34)" * (cast_expression "(uint *)(pcVar22 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x34)" ( (binary_expression "pcVar22 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar9 = 0x3e;\n      }" { (expression_statement "uVar9 = 0x3e;" (assignment_expression "uVar9 = 0x3e" identifier = number_literal) ;) })) (expression_statement "uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);" (assignment_expression "uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16)" identifier = (call_expression "(*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar5,uVar9,in_t1,0xfffffff8)" ( identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }" if (parenthesized_expression "(0 < *(int *)(uVar5 + 0x6c))" ( (binary_expression "0 < *(int *)(uVar5 + 0x6c)" number_literal < (pointer_expression "*(int *)(uVar5 + 0x6c)" * (cast_expression "(int *)(uVar5 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 0x6c)" ( (binary_expression "uVar5 + 0x6c" identifier + number_literal) ))))) )) (compound_statement "{\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }" { (expression_statement "*(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;" (assignment_expression "*(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff" (pointer_expression "*(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16)" * (cast_expression "(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16)" ( (binary_expression "*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16" (binary_expression "*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68)" (binary_expression "*(int *)(uVar5 + 0x6c) * 0x18" (pointer_expression "*(int *)(uVar5 + 0x6c)" * (cast_expression "(int *)(uVar5 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 0x6c)" ( (binary_expression "uVar5 + 0x6c" identifier + number_literal) )))) * number_literal) + (pointer_expression "*(int *)(uVar5 + 0x68)" * (cast_expression "(int *)(uVar5 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 0x68)" ( (binary_expression "uVar5 + 0x68" identifier + number_literal) ))))) + number_literal) )))) = (binary_expression "(ushort)pcVar19 & 0xff" (cast_expression "(ushort)pcVar19" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal)) ;) })) }) (else_clause "else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }" else (compound_statement "{\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }" { (expression_statement "pcVar8 = *(char **)(pcVar20 + 4);" (assignment_expression "pcVar8 = *(char **)(pcVar20 + 4)" identifier = (pointer_expression "*(char **)(pcVar20 + 4)" * (cast_expression "(char **)(pcVar20 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 4)" ( (binary_expression "pcVar20 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }" if (parenthesized_expression "(*pcVar8 == -0x62)" ( (binary_expression "*pcVar8 == -0x62" (pointer_expression "*pcVar8" * identifier) == number_literal) )) (compound_statement "{\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }" { (expression_statement "(*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;" (call_expression "(*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(pcVar8 + 0x1c)" * (cast_expression "(undefined4 *)(pcVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x1c)" ( (binary_expression "pcVar8 + 0x1c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar8 + 0x20)" * (cast_expression "(undefined4 *)(pcVar8 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x20)" ( (binary_expression "pcVar8 + 0x20" identifier + number_literal) )))) , identifier ))) ;) }) (else_clause "else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }" else (compound_statement "{\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }" { (expression_statement "(*pcVar17)(uVar5,0x49,0,pcVar16,0);" (call_expression "(*pcVar17)(uVar5,0x49,0,pcVar16,0)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar5,0x49,0,pcVar16,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }))) }))) (expression_statement "pcVar14 = pcVar16;" (assignment_expression "pcVar14 = pcVar16" identifier = identifier) ;) (if_statement "if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }" if (parenthesized_expression "((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0))" ( (binary_expression "(pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)" (parenthesized_expression "(pcVar19 != (code *)0x0)" ( (binary_expression "pcVar19 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar21 == (code *)0x0)" ( (binary_expression "pcVar21 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }" { (if_statement "if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" if (parenthesized_expression "(pcVar19 == (code *)0x1)" ( (binary_expression "pcVar19 == (code *)0x1" identifier == (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }" { (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))" ( (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" * (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" ( (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x47a4" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" * (cast_expression "(int *)(pcVar25 + 0xaa1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0xaa1ec)" ( (binary_expression "pcVar25 + 0xaa1ec" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar22,pcStack_1ac)" ( identifier , identifier ))) ;) }) (else_clause "else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" else (if_statement "if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" if (parenthesized_expression "((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19)" ( (binary_expression "(int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19" (cast_expression "(int)*(uint *)(pcVar22 + 0x1c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(pcVar22 + 0x1c)" * (cast_expression "(uint *)(pcVar22 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x1c)" ( (binary_expression "pcVar22 + 0x1c" identifier + number_literal) ))))) < (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" { (expression_statement "*(code **)(pcVar22 + 0x1c) = pcVar19;" (assignment_expression "*(code **)(pcVar22 + 0x1c) = pcVar19" (pointer_expression "*(code **)(pcVar22 + 0x1c)" * (cast_expression "(code **)(pcVar22 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x1c)" ( (binary_expression "pcVar22 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(pcVar22 + 0x20) = pcStack_1ac;" (assignment_expression "*(code **)(pcVar22 + 0x20) = pcStack_1ac" (pointer_expression "*(code **)(pcVar22 + 0x20)" * (cast_expression "(code **)(pcVar22 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x20)" ( (binary_expression "pcVar22 + 0x20" identifier + number_literal) )))) = identifier) ;) })))) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (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 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) ;) (expression_statement (assignment_expression IDENT = 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 = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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) ;) (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 = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT )))) * IDENT)) ;) (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 *)) ) (pointer_expression & IDENT))) )) (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) )))) - LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (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 = 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 , LIT ))) ;) (labeled_statement statement_identifier : (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 , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) < IDENT) )) (compound_statement { (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 (pointer_expression & IDENT) < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) ^ LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (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 *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (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 * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))))) ;) (goto_statement goto statement_identifier ;) })))) (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 *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & 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 = 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = 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 (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (goto_statement goto statement_identifier ;) })) (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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) )) (compound_statement { (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 ( )))) ;) (expression_statement (assignment_expression 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 TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))))) ;) (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 *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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 *)) ) LIT)) ;) (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 *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (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 , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (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 (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 ( ))) ;) })) (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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( ))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return 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 = 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT ^ LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (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) )))) - LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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) )))) + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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) )))) - LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 ( ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (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 * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))))) ;) (goto_statement goto statement_identifier ;) })))) (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) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & 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 (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (if_statement if (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 *)) ) 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) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE) ) LIT)) )) == (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression 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 TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) }) (else_clause else (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 *)) ) (pointer_expression & 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( ))) ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 (call_expression (parenthesized_expression ( (pointer_expression * 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 = (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 = 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 = 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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) + LIT) ))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) + LIT) ))) )) (argument_list ( ))))) ;) (return_statement return 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (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 *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (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 = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 = (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) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) >> LIT) )) * LIT)) + 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 , IDENT , 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 ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , 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 , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT) + LIT) ]) , IDENT ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT ))) ;) (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 != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))))) (do_statement do (compound_statement { (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 (assignment_expression IDENT = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (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) )) (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) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;)) }))) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (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) )))) + LIT) )))) ;) }) (else_clause else (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 = (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) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT , IDENT , IDENT , 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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_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) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT , IDENT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) })) }) (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 * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) }))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })))) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "code * FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)\n\n{\n  code cVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  char cVar10;\n  code *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar11;\n  int iVar12;\n  uint uVar13;\n  int in_t0;\n  int in_t1;\n  code *unaff_s0;\n  code *pcVar14;\n  int *piVar15;\n  code *unaff_s1;\n  code *pcVar16;\n  code *unaff_s2;\n  code *pcVar17;\n  int iVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *unaff_s5;\n  code *pcVar21;\n  code *unaff_s6;\n  code *pcVar22;\n  code *unaff_s7;\n  undefined *puVar23;\n  int iVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  undefined1 auStack_15c [4];\n  uint uStack_158;\n  undefined4 uStack_140;\n  undefined1 uStack_134;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  undefined4 uStack_11c;\n  code *pcStack_118;\n  code *pcStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  undefined4 uStack_f4;\n  undefined4 uStack_f0;\n  int iStack_ec;\n  code *pcStack_e8;\n  code *pcStack_e4;\n  code *pcStack_e0;\n  code *pcStack_dc;\n  code *pcStack_d8;\n  code *pcStack_d4;\n  code *pcStack_d0;\n  code *pcStack_cc;\n  int iStack_94;\n  code *pcStack_90;\n  code *pcStack_8c;\n  code *pcStack_84;\n  code *pcStack_80;\n  code *pcStack_7c;\n  undefined *puStack_78;\n  code *pcStack_74;\n  code *pcStack_70;\n  code *pcStack_6c;\n  code *pcStack_68;\n  code *pcStack_64;\n  code *local_50;\n  code *local_4c;\n  code *local_48;\n  code *local_44;\n  int local_34;\n  code *local_30;\n  code *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00190e24;\n  pcVar20 = *(code **)(param_1 + 8);\n  local_34 = 0;\n  local_30 = (code *)0x0;\n  local_2c = *(code **)PTR___stack_chk_guard_00190e24;\n  pcVar25 = param_1;\n  pcVar4 = param_3;\n  pcStack_80 = unaff_s1;\n  pcStack_7c = unaff_s2;\n  pcStack_70 = unaff_s5;\n  if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  pcVar14 = *(code **)puVar2;\n  if (local_2c == pcVar14) {\n    return pcVar14;\n  }\n  pcVar27 = FUN_000e6550;\n  puVar23 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar2;\n  pcVar17 = *(code **)(puVar23 + 0xaa8d4);\n  pcVar19 = *(code **)(pcVar25 + 8);\n  iStack_94 = 0;\n  pcStack_90 = (code *)0x0;\n  pcStack_8c = *(code **)pcVar17;\n  pcVar3 = pcVar25;\n  pcVar26 = param_2;\n  pcVar14 = pcVar4;\n  pcStack_e8 = unaff_s0;\n  pcVar16 = pcStack_80;\n  pcVar21 = pcStack_70;\n  pcVar22 = unaff_s6;\n  pcStack_84 = unaff_s0;\n  pcStack_74 = pcVar20;\n  pcStack_6c = unaff_s6;\n  pcStack_68 = unaff_s7;\n  pcStack_64 = pcVar27;\n  if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;\n  uVar5 = (uint)(byte)*param_2;\n  pcVar22 = (code *)(uVar5 ^ 1);\n  if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pcVar26 = pcStack_90;\n  pcStack_e8 = param_2;\n  pcVar16 = pcVar25;\n  pcVar20 = param_4;\n  pcVar21 = pcVar4;\n  if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }\n  pcVar25 = *(code **)(puVar23 + 0xaa8a8);\n  (*pcVar25)();\n  piVar15 = *(int **)(pcVar25 + 0xaa46c);\n  uVar5 = *(uint *)(pcVar3 + 8);\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar15;\n  pcStack_e4 = pcVar16;\n  pcStack_e0 = pcVar17;\n  pcStack_dc = pcVar19;\n  pcStack_d8 = pcVar20;\n  pcStack_d4 = pcVar21;\n  pcStack_d0 = pcVar22;\n  pcStack_cc = unaff_s7;\n  if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }\n  do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );\n}" (type_identifier "code") (pointer_declarator "* FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)" (* "*") (function_declarator "FUN_000e60cc(code *param_1,code *param_2,code *param_3,code *param_4)" (identifier "FUN_000e60cc") (parameter_list "(code *param_1,code *param_2,code *param_3,code *param_4)" (( "(") (parameter_declaration "code *param_1" (type_identifier "code") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "code *param_2" (type_identifier "code") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "code *param_3" (type_identifier "code") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "code *param_4" (type_identifier "code") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")")))) (compound_statement "{\n  code cVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  char cVar10;\n  code *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar11;\n  int iVar12;\n  uint uVar13;\n  int in_t0;\n  int in_t1;\n  code *unaff_s0;\n  code *pcVar14;\n  int *piVar15;\n  code *unaff_s1;\n  code *pcVar16;\n  code *unaff_s2;\n  code *pcVar17;\n  int iVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *unaff_s5;\n  code *pcVar21;\n  code *unaff_s6;\n  code *pcVar22;\n  code *unaff_s7;\n  undefined *puVar23;\n  int iVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_1ac;\n  int iStack_16c;\n  int iStack_168;\n  undefined1 auStack_15c [4];\n  uint uStack_158;\n  undefined4 uStack_140;\n  undefined1 uStack_134;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  undefined4 uStack_11c;\n  code *pcStack_118;\n  code *pcStack_114;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  undefined4 uStack_100;\n  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  undefined4 uStack_f4;\n  undefined4 uStack_f0;\n  int iStack_ec;\n  code *pcStack_e8;\n  code *pcStack_e4;\n  code *pcStack_e0;\n  code *pcStack_dc;\n  code *pcStack_d8;\n  code *pcStack_d4;\n  code *pcStack_d0;\n  code *pcStack_cc;\n  int iStack_94;\n  code *pcStack_90;\n  code *pcStack_8c;\n  code *pcStack_84;\n  code *pcStack_80;\n  code *pcStack_7c;\n  undefined *puStack_78;\n  code *pcStack_74;\n  code *pcStack_70;\n  code *pcStack_6c;\n  code *pcStack_68;\n  code *pcStack_64;\n  code *local_50;\n  code *local_4c;\n  code *local_48;\n  code *local_44;\n  int local_34;\n  code *local_30;\n  code *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00190e24;\n  pcVar20 = *(code **)(param_1 + 8);\n  local_34 = 0;\n  local_30 = (code *)0x0;\n  local_2c = *(code **)PTR___stack_chk_guard_00190e24;\n  pcVar25 = param_1;\n  pcVar4 = param_3;\n  pcStack_80 = unaff_s1;\n  pcStack_7c = unaff_s2;\n  pcStack_70 = unaff_s5;\n  if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }\n  pcVar14 = *(code **)puVar2;\n  if (local_2c == pcVar14) {\n    return pcVar14;\n  }\n  pcVar27 = FUN_000e6550;\n  puVar23 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puStack_78 = puVar2;\n  pcVar17 = *(code **)(puVar23 + 0xaa8d4);\n  pcVar19 = *(code **)(pcVar25 + 8);\n  iStack_94 = 0;\n  pcStack_90 = (code *)0x0;\n  pcStack_8c = *(code **)pcVar17;\n  pcVar3 = pcVar25;\n  pcVar26 = param_2;\n  pcVar14 = pcVar4;\n  pcStack_e8 = unaff_s0;\n  pcVar16 = pcStack_80;\n  pcVar21 = pcStack_70;\n  pcVar22 = unaff_s6;\n  pcStack_84 = unaff_s0;\n  pcStack_74 = pcVar20;\n  pcStack_6c = unaff_s6;\n  pcStack_68 = unaff_s7;\n  pcStack_64 = pcVar27;\n  if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;\n  uVar5 = (uint)(byte)*param_2;\n  pcVar22 = (code *)(uVar5 ^ 1);\n  if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }\n  if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }\nLAB_000e6670:\n  pcVar26 = pcStack_90;\n  pcStack_e8 = param_2;\n  pcVar16 = pcVar25;\n  pcVar20 = param_4;\n  pcVar21 = pcVar4;\n  if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }\nLAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }\n  pcVar25 = *(code **)(puVar23 + 0xaa8a8);\n  (*pcVar25)();\n  piVar15 = *(int **)(pcVar25 + 0xaa46c);\n  uVar5 = *(uint *)(pcVar3 + 8);\n  iStack_16c = 0;\n  iStack_168 = 0;\n  iStack_ec = *piVar15;\n  pcStack_e4 = pcVar16;\n  pcStack_e0 = pcVar17;\n  pcStack_dc = pcVar19;\n  pcStack_d8 = pcVar20;\n  pcStack_d4 = pcVar21;\n  pcStack_d0 = pcVar22;\n  pcStack_cc = unaff_s7;\n  if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }\n  do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );\n}" ({ "{") (declaration "code cVar1;" (type_identifier "code") (identifier "cVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int in_t0;" (primitive_type "int") (identifier "in_t0") (; ";")) (declaration "int in_t1;" (primitive_type "int") (identifier "in_t1") (; ";")) (declaration "code *unaff_s0;" (type_identifier "code") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "code *unaff_s1;" (type_identifier "code") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "code *pcVar16;" (type_identifier "code") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "code *unaff_s2;" (type_identifier "code") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "code *pcVar17;" (type_identifier "code") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "code *pcVar19;" (type_identifier "code") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "code *unaff_s5;" (type_identifier "code") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "code *pcVar21;" (type_identifier "code") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "code *unaff_s6;" (type_identifier "code") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "code *unaff_s7;" (type_identifier "code") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "code *pcVar26;" (type_identifier "code") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (declaration "code *pcVar27;" (type_identifier "code") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "code *pcStack_1ac;" (type_identifier "code") (pointer_declarator "*pcStack_1ac" (* "*") (identifier "pcStack_1ac")) (; ";")) (declaration "int iStack_16c;" (primitive_type "int") (identifier "iStack_16c") (; ";")) (declaration "int iStack_168;" (primitive_type "int") (identifier "iStack_168") (; ";")) (declaration "undefined1 auStack_15c [4];" (type_identifier "undefined1") (array_declarator "auStack_15c [4]" (identifier "auStack_15c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint uStack_158;" (type_identifier "uint") (identifier "uStack_158") (; ";")) (declaration "undefined4 uStack_140;" (type_identifier "undefined4") (identifier "uStack_140") (; ";")) (declaration "undefined1 uStack_134;" (type_identifier "undefined1") (identifier "uStack_134") (; ";")) (declaration "undefined4 uStack_124;" (type_identifier "undefined4") (identifier "uStack_124") (; ";")) (declaration "undefined4 uStack_120;" (type_identifier "undefined4") (identifier "uStack_120") (; ";")) (declaration "undefined4 uStack_11c;" (type_identifier "undefined4") (identifier "uStack_11c") (; ";")) (declaration "code *pcStack_118;" (type_identifier "code") (pointer_declarator "*pcStack_118" (* "*") (identifier "pcStack_118")) (; ";")) (declaration "code *pcStack_114;" (type_identifier "code") (pointer_declarator "*pcStack_114" (* "*") (identifier "pcStack_114")) (; ";")) (declaration "undefined4 uStack_110;" (type_identifier "undefined4") (identifier "uStack_110") (; ";")) (declaration "undefined4 uStack_10c;" (type_identifier "undefined4") (identifier "uStack_10c") (; ";")) (declaration "undefined4 uStack_108;" (type_identifier "undefined4") (identifier "uStack_108") (; ";")) (declaration "undefined4 uStack_104;" (type_identifier "undefined4") (identifier "uStack_104") (; ";")) (declaration "undefined4 uStack_100;" (type_identifier "undefined4") (identifier "uStack_100") (; ";")) (declaration "undefined4 uStack_fc;" (type_identifier "undefined4") (identifier "uStack_fc") (; ";")) (declaration "undefined4 uStack_f8;" (type_identifier "undefined4") (identifier "uStack_f8") (; ";")) (declaration "undefined4 uStack_f4;" (type_identifier "undefined4") (identifier "uStack_f4") (; ";")) (declaration "undefined4 uStack_f0;" (type_identifier "undefined4") (identifier "uStack_f0") (; ";")) (declaration "int iStack_ec;" (primitive_type "int") (identifier "iStack_ec") (; ";")) (declaration "code *pcStack_e8;" (type_identifier "code") (pointer_declarator "*pcStack_e8" (* "*") (identifier "pcStack_e8")) (; ";")) (declaration "code *pcStack_e4;" (type_identifier "code") (pointer_declarator "*pcStack_e4" (* "*") (identifier "pcStack_e4")) (; ";")) (declaration "code *pcStack_e0;" (type_identifier "code") (pointer_declarator "*pcStack_e0" (* "*") (identifier "pcStack_e0")) (; ";")) (declaration "code *pcStack_dc;" (type_identifier "code") (pointer_declarator "*pcStack_dc" (* "*") (identifier "pcStack_dc")) (; ";")) (declaration "code *pcStack_d8;" (type_identifier "code") (pointer_declarator "*pcStack_d8" (* "*") (identifier "pcStack_d8")) (; ";")) (declaration "code *pcStack_d4;" (type_identifier "code") (pointer_declarator "*pcStack_d4" (* "*") (identifier "pcStack_d4")) (; ";")) (declaration "code *pcStack_d0;" (type_identifier "code") (pointer_declarator "*pcStack_d0" (* "*") (identifier "pcStack_d0")) (; ";")) (declaration "code *pcStack_cc;" (type_identifier "code") (pointer_declarator "*pcStack_cc" (* "*") (identifier "pcStack_cc")) (; ";")) (declaration "int iStack_94;" (primitive_type "int") (identifier "iStack_94") (; ";")) (declaration "code *pcStack_90;" (type_identifier "code") (pointer_declarator "*pcStack_90" (* "*") (identifier "pcStack_90")) (; ";")) (declaration "code *pcStack_8c;" (type_identifier "code") (pointer_declarator "*pcStack_8c" (* "*") (identifier "pcStack_8c")) (; ";")) (declaration "code *pcStack_84;" (type_identifier "code") (pointer_declarator "*pcStack_84" (* "*") (identifier "pcStack_84")) (; ";")) (declaration "code *pcStack_80;" (type_identifier "code") (pointer_declarator "*pcStack_80" (* "*") (identifier "pcStack_80")) (; ";")) (declaration "code *pcStack_7c;" (type_identifier "code") (pointer_declarator "*pcStack_7c" (* "*") (identifier "pcStack_7c")) (; ";")) (declaration "undefined *puStack_78;" (type_identifier "undefined") (pointer_declarator "*puStack_78" (* "*") (identifier "puStack_78")) (; ";")) (declaration "code *pcStack_74;" (type_identifier "code") (pointer_declarator "*pcStack_74" (* "*") (identifier "pcStack_74")) (; ";")) (declaration "code *pcStack_70;" (type_identifier "code") (pointer_declarator "*pcStack_70" (* "*") (identifier "pcStack_70")) (; ";")) (declaration "code *pcStack_6c;" (type_identifier "code") (pointer_declarator "*pcStack_6c" (* "*") (identifier "pcStack_6c")) (; ";")) (declaration "code *pcStack_68;" (type_identifier "code") (pointer_declarator "*pcStack_68" (* "*") (identifier "pcStack_68")) (; ";")) (declaration "code *pcStack_64;" (type_identifier "code") (pointer_declarator "*pcStack_64" (* "*") (identifier "pcStack_64")) (; ";")) (declaration "code *local_50;" (type_identifier "code") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "code *local_4c;" (type_identifier "code") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "code *local_48;" (type_identifier "code") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "code *local_44;" (type_identifier "code") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "code *local_30;" (type_identifier "code") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "code *local_2c;" (type_identifier "code") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00190e24" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_00190e24")) (; ";")) (expression_statement "pcVar20 = *(code **)(param_1 + 8);" (assignment_expression "pcVar20 = *(code **)(param_1 + 8)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(param_1 + 8)" (* "*") (cast_expression "(code **)(param_1 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = (code *)0x0;" (assignment_expression "local_30 = (code *)0x0" (identifier "local_30") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_2c = *(code **)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_2c = *(code **)PTR___stack_chk_guard_00190e24" (identifier "local_2c") (= "=") (pointer_expression "*(code **)PTR___stack_chk_guard_00190e24" (* "*") (cast_expression "(code **)PTR___stack_chk_guard_00190e24" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_00190e24")))) (; ";")) (expression_statement "pcVar25 = param_1;" (assignment_expression "pcVar25 = param_1" (identifier "pcVar25") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcVar4 = param_3;" (assignment_expression "pcVar4 = param_3" (identifier "pcVar4") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_80 = unaff_s1;" (assignment_expression "pcStack_80 = unaff_s1" (identifier "pcStack_80") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "pcStack_7c = unaff_s2;" (assignment_expression "pcStack_7c = unaff_s2" (identifier "pcStack_7c") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pcStack_70 = unaff_s5;" (assignment_expression "pcStack_70 = unaff_s5" (identifier "pcStack_70") (= "=") (identifier "unaff_s5")) (; ";")) (if_statement "if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }" (if "if") (parenthesized_expression "((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0))" (( "(") (binary_expression "(pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)" (parenthesized_expression "(pcVar20 != (code *)0x0)" (( "(") (binary_expression "pcVar20 != (code *)0x0" (identifier "pcVar20") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcStack_80 = param_2, param_2 != (code *)0x0)" (( "(") (comma_expression "pcStack_80 = param_2, param_2 != (code *)0x0" (assignment_expression "pcStack_80 = param_2" (identifier "pcStack_80") (= "=") (identifier "param_2")) (, ",") (binary_expression "param_2 != (code *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    pcVar14 = (code *)(uint)(byte)*param_2;\n    unaff_s6 = param_4;\n    unaff_s7 = pcVar14;\n    if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }\n    unaff_s0 = pcVar14;\n    if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }\njoined_r0x000e64ac:\n    param_4 = pcVar3;\n    if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n    param_2 = local_30;\n    pcStack_7c = param_1;\n    pcStack_70 = param_3;\n    if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }\n  }" ({ "{") (expression_statement "pcVar14 = (code *)(uint)(byte)*param_2;" (assignment_expression "pcVar14 = (code *)(uint)(byte)*param_2" (identifier "pcVar14") (= "=") (binary_expression "(code *)(uint)(byte)*param_2" (cast_expression "(code *)(uint)(byte)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")")))) (* "*") (identifier "param_2"))) (; ";")) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" (identifier "unaff_s6") (= "=") (identifier "param_4")) (; ";")) (expression_statement "unaff_s7 = pcVar14;" (assignment_expression "unaff_s7 = pcVar14" (identifier "unaff_s7") (= "=") (identifier "pcVar14")) (; ";")) (if_statement "if (pcVar14 == (code *)&DAT_00000031) {\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }" (if "if") (parenthesized_expression "(pcVar14 == (code *)&DAT_00000031)" (( "(") (binary_expression "pcVar14 == (code *)&DAT_00000031" (identifier "pcVar14") (== "==") (cast_expression "(code *)&DAT_00000031" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000031" (& "&") (identifier "DAT_00000031")))) () ")")) (compound_statement "{\n      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n      *(code **)(param_1 + 0x38) = unaff_s0;\n      pcVar25 = unaff_s0;\n      if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }\n      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);\n      pcVar4 = (code *)0x0;\n      local_50 = (code *)0x0;\n      pcVar3 = param_3;\n      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);\nLAB_000e6494:\n      pcVar25 = pcVar20;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);\n      goto joined_r0x000e64ac;\n    }" ({ "{") (expression_statement "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);" (assignment_expression "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1)" (identifier "unaff_s0") (= "=") (cast_expression "(code *)(*(uint *)(param_1 + 0x38) - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(param_1 + 0x38) - 1)" (( "(") (binary_expression "*(uint *)(param_1 + 0x38) - 1" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(code **)(param_1 + 0x38) = unaff_s0;" (assignment_expression "*(code **)(param_1 + 0x38) = unaff_s0" (pointer_expression "*(code **)(param_1 + 0x38)" (* "*") (cast_expression "(code **)(param_1 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "pcVar25 = unaff_s0;" (assignment_expression "pcVar25 = unaff_s0" (identifier "pcVar25") (= "=") (identifier "unaff_s0")) (; ";")) (if_statement "if (param_4 != (code *)0x0) {\n        pcVar25 = param_3;\n      }" (if "if") (parenthesized_expression "(param_4 != (code *)0x0)" (( "(") (binary_expression "param_4 != (code *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pcVar25 = param_3;\n      }" ({ "{") (expression_statement "pcVar25 = param_3;" (assignment_expression "pcVar25 = param_3" (identifier "pcVar25") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (expression_statement "FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);" (call_expression "FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25)" (identifier "FUN_000e55ac") (argument_list "(param_1,param_2,unaff_s0,pcVar25)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "unaff_s0") (, ",") (identifier "pcVar25") () ")"))) (; ";")) (expression_statement "pcVar4 = (code *)0x0;" (assignment_expression "pcVar4 = (code *)0x0" (identifier "pcVar4") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50 = (code *)0x0;" (assignment_expression "local_50 = (code *)0x0" (identifier "local_50") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar3 = param_3;" (assignment_expression "pcVar3 = param_3" (identifier "pcVar3") (= "=") (identifier "param_3")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" (( "(") (binary_expression "PTR_LAB_00190bc0 + 0x10fc" (identifier "PTR_LAB_00190bc0") (+ "+") (number_literal "0x10fc")) () ")")))) () ")")) (argument_list "(pcVar20,0xb)" (( "(") (identifier "pcVar20") (, ",") (number_literal "0xb") () ")"))) (; ";")) (labeled_statement "LAB_000e6494:\n      pcVar25 = pcVar20;" (statement_identifier "LAB_000e6494") (: ":") (expression_statement "pcVar25 = pcVar20;" (assignment_expression "pcVar25 = pcVar20" (identifier "pcVar25") (= "=") (identifier "pcVar20")) (; ";"))) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xd78)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xd78)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc0 + 0xd78)" (( "(") (binary_expression "PTR_LAB_00190bc0 + 0xd78" (identifier "PTR_LAB_00190bc0") (+ "+") (number_literal "0xd78")) () ")")))) () ")")) (argument_list "(pcVar20,unaff_s0)" (( "(") (identifier "pcVar20") (, ",") (identifier "unaff_s0") () ")"))) (; ";")) (goto_statement "goto joined_r0x000e64ac;" (goto "goto") (statement_identifier "joined_r0x000e64ac") (; ";")) (} "}"))) (expression_statement "unaff_s0 = pcVar14;" (assignment_expression "unaff_s0 = pcVar14" (identifier "unaff_s0") (= "=") (identifier "pcVar14")) (; ";")) (if_statement "if (&DAT_00000031 < pcVar14) {\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }\n    else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }" (if "if") (parenthesized_expression "(&DAT_00000031 < pcVar14)" (( "(") (binary_expression "&DAT_00000031 < pcVar14" (pointer_expression "&DAT_00000031" (& "&") (identifier "DAT_00000031")) (< "<") (identifier "pcVar14")) () ")")) (compound_statement "{\n      if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }\n      if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }\nLAB_000e631c:\n      pcVar3 = (code *)0x34;\n      if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }\n      unaff_s6 = (code *)0x80;\n      pcVar14 = pcVar3;\nLAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);\n      cVar10 = *pcVar8;\n      if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }\n      unaff_s7 = pcVar14;\n      if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }\n      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);\n      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);\n      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);\n      pcVar4 = *(code **)(param_2 + 0x10);\n      pcVar3 = pcVar14;\n      local_50 = pcVar20;\n      local_48 = param_3;\n      local_44 = unaff_s6;\n      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));\n    }" ({ "{") (if_statement "if (pcVar14 < (code *)0x3a) {\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }" (if "if") (parenthesized_expression "(pcVar14 < (code *)0x3a)" (( "(") (binary_expression "pcVar14 < (code *)0x3a" (identifier "pcVar14") (< "<") (cast_expression "(code *)0x3a" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3a"))) () ")")) (compound_statement "{\n        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;\n        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);\n        local_50 = (code *)0x0;\n        goto LAB_000e6238;\n      }" ({ "{") (if_statement "if (&DAT_00000033 < pcVar14) goto LAB_000e6334;" (if "if") (parenthesized_expression "(&DAT_00000033 < pcVar14)" (( "(") (binary_expression "&DAT_00000033 < pcVar14" (pointer_expression "&DAT_00000033" (& "&") (identifier "DAT_00000033")) (< "<") (identifier "pcVar14")) () ")")) (goto_statement "goto LAB_000e6334;" (goto "goto") (statement_identifier "LAB_000e6334") (; ";"))) (expression_statement "pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);" (assignment_expression "pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34)" (identifier "pcVar4") (= "=") (cast_expression "(code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34)" (identifier "FUN_000ea848") (argument_list "(param_1,*(uint *)(param_2 + 0xc),&local_34)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(uint *)(param_2 + 0xc)" (* "*") (cast_expression "(uint *)(param_2 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))))) (; ";")) (expression_statement "local_50 = (code *)0x0;" (assignment_expression "local_50 = (code *)0x0" (identifier "local_50") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000e6238;" (goto "goto") (statement_identifier "LAB_000e6238") (; ";")) (} "}"))) (if_statement "if (pcVar14 != (code *)0x9c) {\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }" (if "if") (parenthesized_expression "(pcVar14 != (code *)0x9c)" (( "(") (binary_expression "pcVar14 != (code *)0x9c" (identifier "pcVar14") (!= "!=") (cast_expression "(code *)0x9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x9c"))) () ")")) (compound_statement "{\n        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;\n        bVar11 = (byte)param_2[0x28] ^ 0x9c;\n        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }\n        goto joined_r0x000e64ac;\n      }" ({ "{") (if_statement "if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;" (if "if") (parenthesized_expression "(pcVar14 != (code *)0xa3)" (( "(") (binary_expression "pcVar14 != (code *)0xa3" (identifier "pcVar14") (!= "!=") (cast_expression "(code *)0xa3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa3"))) () ")")) (goto_statement "goto LAB_000e63e8;" (goto "goto") (statement_identifier "LAB_000e63e8") (; ";"))) (expression_statement "bVar11 = (byte)param_2[0x28] ^ 0x9c;" (assignment_expression "bVar11 = (byte)param_2[0x28] ^ 0x9c" (identifier "bVar11") (= "=") (binary_expression "(byte)param_2[0x28] ^ 0x9c" (cast_expression "(byte)param_2[0x28]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_2[0x28]" (identifier "param_2") ([ "[") (number_literal "0x28") (] "]"))) (^ "^") (number_literal "0x9c"))) (; ";")) (if_statement "if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }\n        else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }" (if "if") (parenthesized_expression "((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'))" (( "(") (binary_expression "(bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" (parenthesized_expression "(bVar11 == 0)" (( "(") (binary_expression "bVar11 == 0" (identifier "bVar11") (== "==") (number_literal "0")) () ")")) (== "==") (parenthesized_expression "(*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" (* "*") (cast_expression "(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" (( "(") (binary_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4" (pointer_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8)" (* "*") (cast_expression "(int *)(*(uint *)(param_2 + 0x10) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(param_2 + 0x10) + 8)" (( "(") (binary_expression "*(uint *)(param_2 + 0x10) + 8" (pointer_expression "*(uint *)(param_2 + 0x10)" (* "*") (cast_expression "(uint *)(param_2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n        }" ({ "{") (expression_statement "pcVar3 = (code *)&DAT_00000010;" (assignment_expression "pcVar3 = (code *)&DAT_00000010" (identifier "pcVar3") (= "=") (cast_expression "(code *)&DAT_00000010" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000010" (& "&") (identifier "DAT_00000010")))) (; ";")) (if_statement "if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }" (if "if") (parenthesized_expression "(bVar11 != 0)" (( "(") (binary_expression "bVar11 != 0" (identifier "bVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar3 = (code *)0x0;\n          }" ({ "{") (expression_statement "pcVar3 = (code *)0x0;" (assignment_expression "pcVar3 = (code *)0x0" (identifier "pcVar3") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));" (call_expression "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc))" (identifier "FUN_000e6550") (argument_list "(param_1,*(uint *)(param_2 + 0xc))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(uint *)(param_2 + 0xc)" (* "*") (cast_expression "(uint *)(param_2 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }" (else "else") (compound_statement "{\n          pcVar3 = (code *)&DAT_00000010;\n          if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }\n          FUN_000e60cc();\n        }" ({ "{") (expression_statement "pcVar3 = (code *)&DAT_00000010;" (assignment_expression "pcVar3 = (code *)&DAT_00000010" (identifier "pcVar3") (= "=") (cast_expression "(code *)&DAT_00000010" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000010" (& "&") (identifier "DAT_00000010")))) (; ";")) (if_statement "if (bVar11 != 0) {\n            pcVar3 = (code *)0x0;\n          }" (if "if") (parenthesized_expression "(bVar11 != 0)" (( "(") (binary_expression "bVar11 != 0" (identifier "bVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar3 = (code *)0x0;\n          }" ({ "{") (expression_statement "pcVar3 = (code *)0x0;" (assignment_expression "pcVar3 = (code *)0x0" (identifier "pcVar3") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" (identifier "FUN_000e60cc") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (goto_statement "goto joined_r0x000e64ac;" (goto "goto") (statement_identifier "joined_r0x000e64ac") (; ";")) (} "}"))) (labeled_statement "LAB_000e631c:\n      pcVar3 = (code *)0x34;" (statement_identifier "LAB_000e631c") (: ":") (expression_statement "pcVar3 = (code *)0x34;" (assignment_expression "pcVar3 = (code *)0x34" (identifier "pcVar3") (= "=") (cast_expression "(code *)0x34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x34"))) (; ";"))) (if_statement "if (pcVar14 == (code *)0x2d) {\n        pcVar3 = (code *)0x35;\n      }" (if "if") (parenthesized_expression "(pcVar14 == (code *)0x2d)" (( "(") (binary_expression "pcVar14 == (code *)0x2d" (identifier "pcVar14") (== "==") (cast_expression "(code *)0x2d" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2d"))) () ")")) (compound_statement "{\n        pcVar3 = (code *)0x35;\n      }" ({ "{") (expression_statement "pcVar3 = (code *)0x35;" (assignment_expression "pcVar3 = (code *)0x35" (identifier "pcVar3") (= "=") (cast_expression "(code *)0x35" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x35"))) (; ";")) (} "}"))) (expression_statement "unaff_s6 = (code *)0x80;" (assignment_expression "unaff_s6 = (code *)0x80" (identifier "unaff_s6") (= "=") (cast_expression "(code *)0x80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x80"))) (; ";")) (expression_statement "pcVar14 = pcVar3;" (assignment_expression "pcVar14 = pcVar3" (identifier "pcVar14") (= "=") (identifier "pcVar3")) (; ";")) (labeled_statement "LAB_000e6334:\n      pcVar8 = *(char **)(param_2 + 0xc);" (statement_identifier "LAB_000e6334") (: ":") (expression_statement "pcVar8 = *(char **)(param_2 + 0xc);" (assignment_expression "pcVar8 = *(char **)(param_2 + 0xc)" (identifier "pcVar8") (= "=") (pointer_expression "*(char **)(param_2 + 0xc)" (* "*") (cast_expression "(char **)(param_2 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (expression_statement "cVar10 = *pcVar8;" (assignment_expression "cVar10 = *pcVar8" (identifier "cVar10") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (if_statement "if (cVar10 == -0x5c) {\n        cVar10 = pcVar8[0x28];\n      }" (if "if") (parenthesized_expression "(cVar10 == -0x5c)" (( "(") (binary_expression "cVar10 == -0x5c" (identifier "cVar10") (== "==") (number_literal "-0x5c")) () ")")) (compound_statement "{\n        cVar10 = pcVar8[0x28];\n      }" ({ "{") (expression_statement "cVar10 = pcVar8[0x28];" (assignment_expression "cVar10 = pcVar8[0x28]" (identifier "cVar10") (= "=") (subscript_expression "pcVar8[0x28]" (identifier "pcVar8") ([ "[") (number_literal "0x28") (] "]"))) (; ";")) (} "}"))) (expression_statement "unaff_s7 = pcVar14;" (assignment_expression "unaff_s7 = pcVar14" (identifier "unaff_s7") (= "=") (identifier "pcVar14")) (; ";")) (if_statement "if (cVar10 == -0x5b) {\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }\n      else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" (if "if") (parenthesized_expression "(cVar10 == -0x5b)" (( "(") (binary_expression "cVar10 == -0x5b" (identifier "cVar10") (== "==") (number_literal "-0x5b")) () ")")) (compound_statement "{\n        iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;\n        if (1 < iVar24) goto LAB_000e63e8;\n      }" ({ "{") (expression_statement "iVar24 = **(int **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = **(int **)(pcVar8 + 0x14)" (identifier "iVar24") (= "=") (pointer_expression "**(int **)(pcVar8 + 0x14)" (* "*") (pointer_expression "*(int **)(pcVar8 + 0x14)" (* "*") (cast_expression "(int **)(pcVar8 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x14)" (( "(") (binary_expression "pcVar8 + 0x14" (identifier "pcVar8") (+ "+") (number_literal "0x14")) () ")")))))) (; ";")) (labeled_statement "LAB_000e63d8:\n        unaff_s0 = (code *)PTR_LAB_00190c58;" (statement_identifier "LAB_000e63d8") (: ":") (expression_statement "unaff_s0 = (code *)PTR_LAB_00190c58;" (assignment_expression "unaff_s0 = (code *)PTR_LAB_00190c58" (identifier "unaff_s0") (= "=") (cast_expression "(code *)PTR_LAB_00190c58" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LAB_00190c58"))) (; ";"))) (if_statement "if (1 < iVar24) goto LAB_000e63e8;" (if "if") (parenthesized_expression "(1 < iVar24)" (( "(") (binary_expression "1 < iVar24" (number_literal "1") (< "<") (identifier "iVar24")) () ")")) (goto_statement "goto LAB_000e63e8;" (goto "goto") (statement_identifier "LAB_000e63e8") (; ";"))) (} "}")) (else_clause "else if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" (else "else") (if_statement "if (cVar10 == '\x7f') {\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" (if "if") (parenthesized_expression "(cVar10 == '\x7f')" (( "(") (binary_expression "cVar10 == '\x7f'" (identifier "cVar10") (== "==") (char_literal "'\x7f'" (' "'") (escape_sequence "\x7f") (' "'"))) () ")")) (compound_statement "{\n        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n        goto LAB_000e63d8;\n      }" ({ "{") (expression_statement "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)**(undefined4 **)(pcVar8 + 0x14)" (* "*") (cast_expression "(int *)**(undefined4 **)(pcVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar8 + 0x14)" (* "*") (pointer_expression "*(undefined4 **)(pcVar8 + 0x14)" (* "*") (cast_expression "(undefined4 **)(pcVar8 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x14)" (( "(") (binary_expression "pcVar8 + 0x14" (identifier "pcVar8") (+ "+") (number_literal "0x14")) () ")")))))))) (; ";")) (goto_statement "goto LAB_000e63d8;" (goto "goto") (statement_identifier "LAB_000e63d8") (; ";")) (} "}"))))) (expression_statement "unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);" (assignment_expression "unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8)" (identifier "unaff_s0") (= "=") (cast_expression "(code *)(PTR_LAB_00190c58 + -0x57b8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190c58 + -0x57b8)" (( "(") (binary_expression "PTR_LAB_00190c58 + -0x57b8" (identifier "PTR_LAB_00190c58") (+ "+") (number_literal "-0x57b8")) () ")")))) (; ";")) (expression_statement "pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);" (assignment_expression "pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34)" (identifier "pcVar20") (= "=") (cast_expression "(code *)FUN_000ea848(param_1,pcVar8,&local_34)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ea848(param_1,pcVar8,&local_34)" (identifier "FUN_000ea848") (argument_list "(param_1,pcVar8,&local_34)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar8") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))))) (; ";")) (expression_statement "local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);" (assignment_expression "local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30)" (identifier "local_4c") (= "=") (cast_expression "(code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30)" (identifier "FUN_000ea848") (argument_list "(param_1,*(uint *)(param_2 + 0x10),&local_30)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(uint *)(param_2 + 0x10)" (* "*") (cast_expression "(uint *)(param_2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(code **)(param_2 + 0x10);" (assignment_expression "pcVar4 = *(code **)(param_2 + 0x10)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(param_2 + 0x10)" (* "*") (cast_expression "(code **)(param_2 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pcVar3 = pcVar14;" (assignment_expression "pcVar3 = pcVar14" (identifier "pcVar3") (= "=") (identifier "pcVar14")) (; ";")) (expression_statement "local_50 = pcVar20;" (assignment_expression "local_50 = pcVar20" (identifier "local_50") (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "local_48 = param_3;" (assignment_expression "local_48 = param_3" (identifier "local_48") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_44 = unaff_s6;" (assignment_expression "local_44 = unaff_s6" (identifier "local_44") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));" (call_expression "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc))" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc4 + -0x59dc))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bc4 + -0x59dc)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bc4 + -0x59dc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc4 + -0x59dc)" (( "(") (binary_expression "PTR_LAB_00190bc4 + -0x59dc" (identifier "PTR_LAB_00190bc4") (+ "+") (number_literal "-0x59dc")) () ")")))) () ")")) (argument_list "(param_1,*(uint *)(param_2 + 0xc))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(uint *)(param_2 + 0xc)" (* "*") (cast_expression "(uint *)(param_2 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }" (else "else") (compound_statement "{\n      pcVar3 = param_4;\n      if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }\n      if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }\n    }" ({ "{") (expression_statement "pcVar3 = param_4;" (assignment_expression "pcVar3 = param_4" (identifier "pcVar3") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (pcVar14 == (code *)0x2c) {\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }" (if "if") (parenthesized_expression "(pcVar14 == (code *)0x2c)" (( "(") (binary_expression "pcVar14 == (code *)0x2c" (identifier "pcVar14") (== "==") (cast_expression "(code *)0x2c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2c"))) () ")")) (compound_statement "{\n        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);\n        *(code **)(param_1 + 0x38) = unaff_s0;\n        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);\n        FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n        goto LAB_000e6494;\n      }" ({ "{") (expression_statement "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);" (assignment_expression "unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1)" (identifier "unaff_s0") (= "=") (cast_expression "(code *)(*(uint *)(param_1 + 0x38) - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(param_1 + 0x38) - 1)" (( "(") (binary_expression "*(uint *)(param_1 + 0x38) - 1" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(code **)(param_1 + 0x38) = unaff_s0;" (assignment_expression "*(code **)(param_1 + 0x38) = unaff_s0" (pointer_expression "*(code **)(param_1 + 0x38)" (* "*") (cast_expression "(code **)(param_1 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);" (call_expression "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10)" (identifier "FUN_000e6550") (argument_list "(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(uint *)(param_2 + 0xc)" (* "*") (cast_expression "(uint *)(param_2 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "unaff_s0") (, ",") (binary_expression "(uint)param_4 ^ 0x10" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (^ "^") (number_literal "0x10")) () ")"))) (; ";")) (expression_statement "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));" (call_expression "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10))" (identifier "FUN_000e60cc") (argument_list "(param_1,*(uint *)(param_2 + 0x10))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(uint *)(param_2 + 0x10)" (* "*") (cast_expression "(uint *)(param_2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) () ")"))) (; ";")) (goto_statement "goto LAB_000e6494;" (goto "goto") (statement_identifier "LAB_000e6494") (; ";")) (} "}"))) (if_statement "if (pcVar14 < (code *)0x2d) {\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }\n      else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }" (if "if") (parenthesized_expression "(pcVar14 < (code *)0x2d)" (( "(") (binary_expression "pcVar14 < (code *)0x2d" (identifier "pcVar14") (< "<") (cast_expression "(code *)0x2d" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2d"))) () ")")) (compound_statement "{\n        if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }\n        unaff_s0 = (code *)PTR_LAB_00190bd0;\n        if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }\nLAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);\n        if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }\nLAB_000e6238:\n        pcVar25 = pcVar20;\n        pcVar3 = param_3;\n        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);\n        unaff_s6 = param_4;\n      }" ({ "{") (if_statement "if (pcVar14 == (code *)&DAT_00000013) {\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }" (if "if") (parenthesized_expression "(pcVar14 == (code *)&DAT_00000013)" (( "(") (binary_expression "pcVar14 == (code *)&DAT_00000013" (identifier "pcVar14") (== "==") (cast_expression "(code *)&DAT_00000013" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000013" (& "&") (identifier "DAT_00000013")))) () ")")) (compound_statement "{\n          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));\n          goto joined_r0x000e64ac;\n        }" ({ "{") (expression_statement "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));" (call_expression "FUN_000e6550(param_1,*(uint *)(param_2 + 0xc))" (identifier "FUN_000e6550") (argument_list "(param_1,*(uint *)(param_2 + 0xc))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(uint *)(param_2 + 0xc)" (* "*") (cast_expression "(uint *)(param_2 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (goto_statement "goto joined_r0x000e64ac;" (goto "goto") (statement_identifier "joined_r0x000e64ac") (; ";")) (} "}"))) (expression_statement "unaff_s0 = (code *)PTR_LAB_00190bd0;" (assignment_expression "unaff_s0 = (code *)PTR_LAB_00190bd0" (identifier "unaff_s0") (= "=") (cast_expression "(code *)PTR_LAB_00190bd0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LAB_00190bd0"))) (; ";")) (if_statement "if (pcVar14 == (code *)0x2b) {\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }" (if "if") (parenthesized_expression "(pcVar14 == (code *)0x2b)" (( "(") (binary_expression "pcVar14 == (code *)0x2b" (identifier "pcVar14") (== "==") (cast_expression "(code *)0x2b" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2b"))) () ")")) (compound_statement "{\n          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));\n          FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));\n          goto joined_r0x000e64ac;\n        }" ({ "{") (expression_statement "unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);" (assignment_expression "unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc)" (identifier "unaff_s0") (= "=") (cast_expression "(code *)(PTR_LAB_00190bd0 + 0x60cc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bd0 + 0x60cc)" (( "(") (binary_expression "PTR_LAB_00190bd0 + 0x60cc" (identifier "PTR_LAB_00190bd0") (+ "+") (number_literal "0x60cc")) () ")")))) (; ";")) (expression_statement "FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc));" (call_expression "FUN_000e60cc(param_1,*(uint *)(param_2 + 0xc))" (identifier "FUN_000e60cc") (argument_list "(param_1,*(uint *)(param_2 + 0xc))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(uint *)(param_2 + 0xc)" (* "*") (cast_expression "(uint *)(param_2 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10));" (call_expression "FUN_000e60cc(param_1,*(uint *)(param_2 + 0x10))" (identifier "FUN_000e60cc") (argument_list "(param_1,*(uint *)(param_2 + 0x10))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(uint *)(param_2 + 0x10)" (* "*") (cast_expression "(uint *)(param_2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) () ")"))) (; ";")) (goto_statement "goto joined_r0x000e64ac;" (goto "goto") (statement_identifier "joined_r0x000e64ac") (; ";")) (} "}"))) (labeled_statement "LAB_000e63e8:\n        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);" (statement_identifier "LAB_000e63e8") (: ":") (expression_statement "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);" (assignment_expression "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2)" (identifier "iVar24") (= "=") (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4d8c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4d8c)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4d8c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4d8c)" (( "(") (binary_expression "PTR_LAB_00190ba4 + -0x4d8c" (identifier "PTR_LAB_00190ba4") (+ "+") (number_literal "-0x4d8c")) () ")")))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";"))) (if_statement "if (iVar24 == 0) {\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }\n        else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar25 = param_2;\n          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();\n          pcVar3 = param_4;\n          if (iVar24 != 0) goto joined_r0x000e64ac;\n          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);\n          pcVar14 = (code *)0x12;\n          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);\n          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);\n        }" ({ "{") (expression_statement "pcVar25 = param_2;" (assignment_expression "pcVar25 = param_2" (identifier "pcVar25") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();" (assignment_expression "iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))()" (identifier "iVar24") (= "=") (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4e14))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4e14))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4e14)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4e14)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4e14)" (( "(") (binary_expression "PTR_LAB_00190ba4 + -0x4e14" (identifier "PTR_LAB_00190ba4") (+ "+") (number_literal "-0x4e14")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar3 = param_4;" (assignment_expression "pcVar3 = param_4" (identifier "pcVar3") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (iVar24 != 0) goto joined_r0x000e64ac;" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x000e64ac;" (goto "goto") (statement_identifier "joined_r0x000e64ac") (; ";"))) (expression_statement "pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);" (assignment_expression "pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34)" (identifier "pcVar4") (= "=") (cast_expression "(code *)FUN_000ea848(param_1,param_2,&local_34)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ea848(param_1,param_2,&local_34)" (identifier "FUN_000ea848") (argument_list "(param_1,param_2,&local_34)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))))) (; ";")) (expression_statement "pcVar14 = (code *)0x12;" (assignment_expression "pcVar14 = (code *)0x12" (identifier "pcVar14") (= "=") (cast_expression "(code *)0x12" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x12"))) (; ";")) (expression_statement "param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);" (assignment_expression "param_4 = (code *)(uint)(unaff_s6 != (code *)0x0)" (identifier "param_4") (= "=") (cast_expression "(code *)(uint)(unaff_s6 != (code *)0x0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(unaff_s6 != (code *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(unaff_s6 != (code *)0x0)" (( "(") (binary_expression "unaff_s6 != (code *)0x0" (identifier "unaff_s6") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (expression_statement "local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);" (assignment_expression "local_50 = (code *)(uint)(unaff_s6 != (code *)0x0)" (identifier "local_50") (= "=") (cast_expression "(code *)(uint)(unaff_s6 != (code *)0x0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(unaff_s6 != (code *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(unaff_s6 != (code *)0x0)" (( "(") (binary_expression "unaff_s6 != (code *)0x0" (identifier "unaff_s6") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }" (else "else") (compound_statement "{\n          pcVar4 = (code *)0x0;\n          local_50 = (code *)0x0;\n          pcVar14 = (code *)&DAT_0000000b;\n          param_4 = unaff_s6;\n        }" ({ "{") (expression_statement "pcVar4 = (code *)0x0;" (assignment_expression "pcVar4 = (code *)0x0" (identifier "pcVar4") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50 = (code *)0x0;" (assignment_expression "local_50 = (code *)0x0" (identifier "local_50") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar14 = (code *)&DAT_0000000b;" (assignment_expression "pcVar14 = (code *)&DAT_0000000b" (identifier "pcVar14") (= "=") (cast_expression "(code *)&DAT_0000000b" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000000b" (& "&") (identifier "DAT_0000000b")))) (; ";")) (expression_statement "param_4 = unaff_s6;" (assignment_expression "param_4 = unaff_s6" (identifier "param_4") (= "=") (identifier "unaff_s6")) (; ";")) (} "}")))) (labeled_statement "LAB_000e6238:\n        pcVar25 = pcVar20;" (statement_identifier "LAB_000e6238") (: ":") (expression_statement "pcVar25 = pcVar20;" (assignment_expression "pcVar25 = pcVar20" (identifier "pcVar25") (= "=") (identifier "pcVar20")) (; ";"))) (expression_statement "pcVar3 = param_3;" (assignment_expression "pcVar3 = param_3" (identifier "pcVar3") (= "=") (identifier "param_3")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" (( "(") (binary_expression "PTR_LAB_00190bc0 + 0x10fc" (identifier "PTR_LAB_00190bc0") (+ "+") (number_literal "0x10fc")) () ")")))) () ")")) (argument_list "(pcVar20,pcVar14)" (( "(") (identifier "pcVar20") (, ",") (identifier "pcVar14") () ")"))) (; ";")) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" (identifier "unaff_s6") (= "=") (identifier "param_4")) (; ";")) (} "}")) (else_clause "else {\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }" (else "else") (compound_statement "{\n        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;\n        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;\n        pcVar4 = param_2 + 0x14;\n        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);\n        pcVar3 = param_3;\n        local_4c = param_4;\n        FUN_000ec9a4(param_1,param_2 + 0xc);\n      }" ({ "{") (if_statement "if (pcVar14 == (code *)0x2d) goto LAB_000e631c;" (if "if") (parenthesized_expression "(pcVar14 == (code *)0x2d)" (( "(") (binary_expression "pcVar14 == (code *)0x2d" (identifier "pcVar14") (== "==") (cast_expression "(code *)0x2d" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2d"))) () ")")) (goto_statement "goto LAB_000e631c;" (goto "goto") (statement_identifier "LAB_000e631c") (; ";"))) (if_statement "if (pcVar14 != (code *)0x30) goto LAB_000e63e8;" (if "if") (parenthesized_expression "(pcVar14 != (code *)0x30)" (( "(") (binary_expression "pcVar14 != (code *)0x30" (identifier "pcVar14") (!= "!=") (cast_expression "(code *)0x30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x30"))) () ")")) (goto_statement "goto LAB_000e63e8;" (goto "goto") (statement_identifier "LAB_000e63e8") (; ";"))) (expression_statement "pcVar4 = param_2 + 0x14;" (assignment_expression "pcVar4 = param_2 + 0x14" (identifier "pcVar4") (= "=") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);" (assignment_expression "local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc)" (identifier "local_50") (= "=") (cast_expression "(code *)(PTR_LAB_00190bd0 + 0x60cc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bd0 + 0x60cc)" (( "(") (binary_expression "PTR_LAB_00190bd0 + 0x60cc" (identifier "PTR_LAB_00190bd0") (+ "+") (number_literal "0x60cc")) () ")")))) (; ";")) (expression_statement "pcVar3 = param_3;" (assignment_expression "pcVar3 = param_3" (identifier "pcVar3") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_4c = param_4;" (assignment_expression "local_4c = param_4" (identifier "local_4c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "FUN_000ec9a4(param_1,param_2 + 0xc);" (call_expression "FUN_000ec9a4(param_1,param_2 + 0xc)" (identifier "FUN_000ec9a4") (argument_list "(param_1,param_2 + 0xc)" (( "(") (identifier "param_1") (, ",") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "joined_r0x000e64ac:\n    param_4 = pcVar3;" (statement_identifier "joined_r0x000e64ac") (: ":") (expression_statement "param_4 = pcVar3;" (assignment_expression "param_4 = pcVar3" (identifier "param_4") (= "=") (identifier "pcVar3")) (; ";"))) (if_statement "if (local_34 != 0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" (if "if") (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" ({ "{") (expression_statement "pcVar25 = param_1;" (assignment_expression "pcVar25 = param_1" (identifier "pcVar25") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x4854))();" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4854)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4854)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4854)" (( "(") (binary_expression "PTR_LAB_00190ba4 + -0x4854" (identifier "PTR_LAB_00190ba4") (+ "+") (number_literal "-0x4854")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "param_2 = local_30;" (assignment_expression "param_2 = local_30" (identifier "param_2") (= "=") (identifier "local_30")) (; ";")) (expression_statement "pcStack_7c = param_1;" (assignment_expression "pcStack_7c = param_1" (identifier "pcStack_7c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcStack_70 = param_3;" (assignment_expression "pcStack_70 = param_3" (identifier "pcStack_70") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (local_30 != (code *)0x0) {\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" (if "if") (parenthesized_expression "(local_30 != (code *)0x0)" (( "(") (binary_expression "local_30 != (code *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar25 = param_1;\n      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();\n    }" ({ "{") (expression_statement "pcVar25 = param_1;" (assignment_expression "pcVar25 = param_1" (identifier "pcVar25") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x4854))();" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x4854))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x4854)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4854)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4854)" (( "(") (binary_expression "PTR_LAB_00190ba4 + -0x4854" (identifier "PTR_LAB_00190ba4") (+ "+") (number_literal "-0x4854")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar14 = *(code **)puVar2;" (assignment_expression "pcVar14 = *(code **)puVar2" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)puVar2" (* "*") (cast_expression "(code **)puVar2" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (if_statement "if (local_2c == pcVar14) {\n    return pcVar14;\n  }" (if "if") (parenthesized_expression "(local_2c == pcVar14)" (( "(") (binary_expression "local_2c == pcVar14" (identifier "local_2c") (== "==") (identifier "pcVar14")) () ")")) (compound_statement "{\n    return pcVar14;\n  }" ({ "{") (return_statement "return pcVar14;" (return "return") (identifier "pcVar14") (; ";")) (} "}"))) (expression_statement "pcVar27 = FUN_000e6550;" (assignment_expression "pcVar27 = FUN_000e6550" (identifier "pcVar27") (= "=") (identifier "FUN_000e6550")) (; ";")) (expression_statement "puVar23 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar23 = PTR___stack_chk_fail_00190df8" (identifier "puVar23") (= "=") (identifier "PTR___stack_chk_fail_00190df8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00190df8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00190df8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_78 = puVar2;" (assignment_expression "puStack_78 = puVar2" (identifier "puStack_78") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "pcVar17 = *(code **)(puVar23 + 0xaa8d4);" (assignment_expression "pcVar17 = *(code **)(puVar23 + 0xaa8d4)" (identifier "pcVar17") (= "=") (pointer_expression "*(code **)(puVar23 + 0xaa8d4)" (* "*") (cast_expression "(code **)(puVar23 + 0xaa8d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0xaa8d4)" (( "(") (binary_expression "puVar23 + 0xaa8d4" (identifier "puVar23") (+ "+") (number_literal "0xaa8d4")) () ")"))))) (; ";")) (expression_statement "pcVar19 = *(code **)(pcVar25 + 8);" (assignment_expression "pcVar19 = *(code **)(pcVar25 + 8)" (identifier "pcVar19") (= "=") (pointer_expression "*(code **)(pcVar25 + 8)" (* "*") (cast_expression "(code **)(pcVar25 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 8)" (( "(") (binary_expression "pcVar25 + 8" (identifier "pcVar25") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iStack_94 = 0;" (assignment_expression "iStack_94 = 0" (identifier "iStack_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcStack_90 = (code *)0x0;" (assignment_expression "pcStack_90 = (code *)0x0" (identifier "pcStack_90") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcStack_8c = *(code **)pcVar17;" (assignment_expression "pcStack_8c = *(code **)pcVar17" (identifier "pcStack_8c") (= "=") (pointer_expression "*(code **)pcVar17" (* "*") (cast_expression "(code **)pcVar17" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar17")))) (; ";")) (expression_statement "pcVar3 = pcVar25;" (assignment_expression "pcVar3 = pcVar25" (identifier "pcVar3") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "pcVar26 = param_2;" (assignment_expression "pcVar26 = param_2" (identifier "pcVar26") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pcVar14 = pcVar4;" (assignment_expression "pcVar14 = pcVar4" (identifier "pcVar14") (= "=") (identifier "pcVar4")) (; ";")) (expression_statement "pcStack_e8 = unaff_s0;" (assignment_expression "pcStack_e8 = unaff_s0" (identifier "pcStack_e8") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "pcVar16 = pcStack_80;" (assignment_expression "pcVar16 = pcStack_80" (identifier "pcVar16") (= "=") (identifier "pcStack_80")) (; ";")) (expression_statement "pcVar21 = pcStack_70;" (assignment_expression "pcVar21 = pcStack_70" (identifier "pcVar21") (= "=") (identifier "pcStack_70")) (; ";")) (expression_statement "pcVar22 = unaff_s6;" (assignment_expression "pcVar22 = unaff_s6" (identifier "pcVar22") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pcStack_84 = unaff_s0;" (assignment_expression "pcStack_84 = unaff_s0" (identifier "pcStack_84") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "pcStack_74 = pcVar20;" (assignment_expression "pcStack_74 = pcVar20" (identifier "pcStack_74") (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "pcStack_6c = unaff_s6;" (assignment_expression "pcStack_6c = unaff_s6" (identifier "pcStack_6c") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pcStack_68 = unaff_s7;" (assignment_expression "pcStack_68 = unaff_s7" (identifier "pcStack_68") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pcStack_64 = pcVar27;" (assignment_expression "pcStack_64 = pcVar27" (identifier "pcStack_64") (= "=") (identifier "pcVar27")) (; ";")) (if_statement "if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;" (if "if") (parenthesized_expression "((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0))" (( "(") (binary_expression "(pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)" (parenthesized_expression "(pcVar19 == (code *)0x0)" (( "(") (binary_expression "pcVar19 == (code *)0x0" (identifier "pcVar19") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcStack_e8 = param_2, param_2 == (code *)0x0)" (( "(") (comma_expression "pcStack_e8 = param_2, param_2 == (code *)0x0" (assignment_expression "pcStack_e8 = param_2" (identifier "pcStack_e8") (= "=") (identifier "param_2")) (, ",") (binary_expression "param_2 == (code *)0x0" (identifier "param_2") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_000e667c;" (goto "goto") (statement_identifier "LAB_000e667c") (; ";"))) (expression_statement "uVar5 = (uint)(byte)*param_2;" (assignment_expression "uVar5 = (uint)(byte)*param_2" (identifier "uVar5") (= "=") (binary_expression "(uint)(byte)*param_2" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "param_2"))) (; ";")) (expression_statement "pcVar22 = (code *)(uVar5 ^ 1);" (assignment_expression "pcVar22 = (code *)(uVar5 ^ 1)" (identifier "pcVar22") (= "=") (cast_expression "(code *)(uVar5 ^ 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 ^ 1)" (( "(") (binary_expression "uVar5 ^ 1" (identifier "uVar5") (^ "^") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (uVar5 == 0x31) {\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }" (if "if") (parenthesized_expression "(uVar5 == 0x31)" (( "(") (binary_expression "uVar5 == 0x31" (identifier "uVar5") (== "==") (number_literal "0x31")) () ")")) (compound_statement "{\n    if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }\n    goto LAB_000e6654;\n  }" ({ "{") (if_statement "if (param_4 == (code *)0x0) {\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }\n    else {\n      FUN_000e55ac();\n    }" (if "if") (parenthesized_expression "(param_4 == (code *)0x0)" (( "(") (binary_expression "param_4 == (code *)0x0" (identifier "param_4") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n      *(code **)(pcVar25 + 0x38) = pcVar20;\n      FUN_000e55ac();\n      param_2 = pcVar20;\nLAB_000e6640:\n      pcVar3 = pcVar19;\n      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);\n    }" ({ "{") (expression_statement "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);" (assignment_expression "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1)" (identifier "pcVar20") (= "=") (cast_expression "(code *)(*(uint *)(pcVar25 + 0x38) - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(pcVar25 + 0x38) - 1)" (( "(") (binary_expression "*(uint *)(pcVar25 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar25 + 0x38)" (* "*") (cast_expression "(uint *)(pcVar25 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x38)" (( "(") (binary_expression "pcVar25 + 0x38" (identifier "pcVar25") (+ "+") (number_literal "0x38")) () ")")))) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(code **)(pcVar25 + 0x38) = pcVar20;" (assignment_expression "*(code **)(pcVar25 + 0x38) = pcVar20" (pointer_expression "*(code **)(pcVar25 + 0x38)" (* "*") (cast_expression "(code **)(pcVar25 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x38)" (( "(") (binary_expression "pcVar25 + 0x38" (identifier "pcVar25") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "FUN_000e55ac();" (call_expression "FUN_000e55ac()" (identifier "FUN_000e55ac") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_2 = pcVar20;" (assignment_expression "param_2 = pcVar20" (identifier "param_2") (= "=") (identifier "pcVar20")) (; ";")) (labeled_statement "LAB_000e6640:\n      pcVar3 = pcVar19;" (statement_identifier "LAB_000e6640") (: ":") (expression_statement "pcVar3 = pcVar19;" (assignment_expression "pcVar3 = pcVar19" (identifier "pcVar3") (= "=") (identifier "pcVar19")) (; ";"))) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20)" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78)" (* "*") (cast_expression "(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar23 + 0xaa670) + 0xd78)" (( "(") (binary_expression "*(int *)(puVar23 + 0xaa670) + 0xd78" (pointer_expression "*(int *)(puVar23 + 0xaa670)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa670)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa670)" (( "(") (binary_expression "puVar23 + 0xaa670" (identifier "puVar23") (+ "+") (number_literal "0xaa670")) () ")")))) (+ "+") (number_literal "0xd78")) () ")")))) () ")")) (argument_list "(pcVar19,pcVar20)" (( "(") (identifier "pcVar19") (, ",") (identifier "pcVar20") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_000e55ac();\n    }" (else "else") (compound_statement "{\n      FUN_000e55ac();\n    }" ({ "{") (expression_statement "FUN_000e55ac();" (call_expression "FUN_000e55ac()" (identifier "FUN_000e55ac") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_000e6654;" (goto "goto") (statement_identifier "LAB_000e6654") (; ";")) (} "}"))) (if_statement "if (uVar5 < 0x32) {\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }\n  else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" (if "if") (parenthesized_expression "(uVar5 < 0x32)" (( "(") (binary_expression "uVar5 < 0x32" (identifier "uVar5") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\n    if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }\nLAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);\n    if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }\n  }" ({ "{") (if_statement "if (uVar5 == 0x2c) {\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }\n    else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" (if "if") (parenthesized_expression "(uVar5 == 0x2c)" (( "(") (binary_expression "uVar5 == 0x2c" (identifier "uVar5") (== "==") (number_literal "0x2c")) () ")")) (compound_statement "{\n      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);\n      FUN_000e6550();\n      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n    }" ({ "{") (expression_statement "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);" (assignment_expression "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550)" (identifier "pcVar19") (= "=") (cast_expression "(code *)(*(int *)(puVar23 + 0xaa680) + 0x6550)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar23 + 0xaa680) + 0x6550)" (( "(") (binary_expression "*(int *)(puVar23 + 0xaa680) + 0x6550" (pointer_expression "*(int *)(puVar23 + 0xaa680)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa680)" (( "(") (binary_expression "puVar23 + 0xaa680" (identifier "puVar23") (+ "+") (number_literal "0xaa680")) () ")")))) (+ "+") (number_literal "0x6550")) () ")")))) (; ";")) (expression_statement "FUN_000e6550();" (call_expression "FUN_000e6550()" (identifier "FUN_000e6550") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);" (call_expression "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" (identifier "FUN_000e6550") (argument_list "(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" (( "(") (identifier "pcVar25") (, ",") (pointer_expression "*(uint *)(param_2 + 0x10)" (* "*") (cast_expression "(uint *)(param_2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "pcVar4") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")) (else_clause "else if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" (else "else") (if_statement "if (uVar5 < 0x2d) {\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }\n    else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" (if "if") (parenthesized_expression "(uVar5 < 0x2d)" (( "(") (binary_expression "uVar5 < 0x2d" (identifier "uVar5") (< "<") (number_literal "0x2d")) () ")")) (compound_statement "{\n      if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }\n      FUN_000e60cc();\n    }" ({ "{") (if_statement "if (uVar5 != 0x13) {\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }" (if "if") (parenthesized_expression "(uVar5 != 0x13)" (( "(") (binary_expression "uVar5 != 0x13" (identifier "uVar5") (!= "!=") (number_literal "0x13")) () ")")) (compound_statement "{\n        if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }\nLAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);\n        pcVar20 = pcVar22;\n        goto LAB_000e689c;\n      }" ({ "{") (if_statement "if (uVar5 == 0x2b) {\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }" (if "if") (parenthesized_expression "(uVar5 == 0x2b)" (( "(") (binary_expression "uVar5 == 0x2b" (identifier "uVar5") (== "==") (number_literal "0x2b")) () ")")) (compound_statement "{\n          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);\n          *(code **)(pcVar25 + 0x38) = pcVar20;\n          FUN_000e60cc();\n          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);\n          pcVar22 = pcVar20;\n          goto LAB_000e6640;\n        }" ({ "{") (expression_statement "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);" (assignment_expression "pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1)" (identifier "pcVar20") (= "=") (cast_expression "(code *)(*(uint *)(pcVar25 + 0x38) - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(pcVar25 + 0x38) - 1)" (( "(") (binary_expression "*(uint *)(pcVar25 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar25 + 0x38)" (* "*") (cast_expression "(uint *)(pcVar25 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x38)" (( "(") (binary_expression "pcVar25 + 0x38" (identifier "pcVar25") (+ "+") (number_literal "0x38")) () ")")))) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(code **)(pcVar25 + 0x38) = pcVar20;" (assignment_expression "*(code **)(pcVar25 + 0x38) = pcVar20" (pointer_expression "*(code **)(pcVar25 + 0x38)" (* "*") (cast_expression "(code **)(pcVar25 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x38)" (( "(") (binary_expression "pcVar25 + 0x38" (identifier "pcVar25") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" (identifier "FUN_000e60cc") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);" (call_expression "FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" (identifier "FUN_000e6550") (argument_list "(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4)" (( "(") (identifier "pcVar25") (, ",") (pointer_expression "*(uint *)(param_2 + 0x10)" (* "*") (cast_expression "(uint *)(param_2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "pcVar4") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" (identifier "pcVar22") (= "=") (identifier "pcVar20")) (; ";")) (goto_statement "goto LAB_000e6640;" (goto "goto") (statement_identifier "LAB_000e6640") (; ";")) (} "}"))) (labeled_statement "LAB_000e6898:\n        iVar24 = *(int *)(puVar23 + 0xaa654);" (statement_identifier "LAB_000e6898") (: ":") (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar23 + 0xaa654)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa654)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa654)" (( "(") (binary_expression "puVar23 + 0xaa654" (identifier "puVar23") (+ "+") (number_literal "0xaa654")) () ")"))))) (; ";"))) (expression_statement "pcVar20 = pcVar22;" (assignment_expression "pcVar20 = pcVar22" (identifier "pcVar20") (= "=") (identifier "pcVar22")) (; ";")) (goto_statement "goto LAB_000e689c;" (goto "goto") (statement_identifier "LAB_000e689c") (; ";")) (} "}"))) (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" (identifier "FUN_000e60cc") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" (else "else") (compound_statement "{\n      if (uVar5 == 0x2d) goto LAB_000e67d0;\n      if (uVar5 != 0x30) goto LAB_000e6898;\n      pcVar14 = param_2 + 0x14;\n      FUN_000ec9a4();\n    }" ({ "{") (if_statement "if (uVar5 == 0x2d) goto LAB_000e67d0;" (if "if") (parenthesized_expression "(uVar5 == 0x2d)" (( "(") (binary_expression "uVar5 == 0x2d" (identifier "uVar5") (== "==") (number_literal "0x2d")) () ")")) (goto_statement "goto LAB_000e67d0;" (goto "goto") (statement_identifier "LAB_000e67d0") (; ";"))) (if_statement "if (uVar5 != 0x30) goto LAB_000e6898;" (if "if") (parenthesized_expression "(uVar5 != 0x30)" (( "(") (binary_expression "uVar5 != 0x30" (identifier "uVar5") (!= "!=") (number_literal "0x30")) () ")")) (goto_statement "goto LAB_000e6898;" (goto "goto") (statement_identifier "LAB_000e6898") (; ";"))) (expression_statement "pcVar14 = param_2 + 0x14;" (assignment_expression "pcVar14 = param_2 + 0x14" (identifier "pcVar14") (= "=") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "FUN_000ec9a4();" (call_expression "FUN_000ec9a4()" (identifier "FUN_000ec9a4") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))))) (labeled_statement "LAB_000e6654:\n    iVar24 = *(int *)(puVar23 + 0xaa654);" (statement_identifier "LAB_000e6654") (: ":") (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar23 + 0xaa654)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa654)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa654)" (( "(") (binary_expression "puVar23 + 0xaa654" (identifier "puVar23") (+ "+") (number_literal "0xaa654")) () ")"))))) (; ";"))) (if_statement "if (iStack_94 != 0) {\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }" (if "if") (parenthesized_expression "(iStack_94 != 0)" (( "(") (binary_expression "iStack_94 != 0" (identifier "iStack_94") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000e6660:\n      pcVar3 = pcVar25;\n      (*(code *)(iVar24 + -0x4854))();\n    }" ({ "{") (labeled_statement "LAB_000e6660:\n      pcVar3 = pcVar25;" (statement_identifier "LAB_000e6660") (: ":") (expression_statement "pcVar3 = pcVar25;" (assignment_expression "pcVar3 = pcVar25" (identifier "pcVar3") (= "=") (identifier "pcVar25")) (; ";"))) (expression_statement "(*(code *)(iVar24 + -0x4854))();" (call_expression "(*(code *)(iVar24 + -0x4854))()" (parenthesized_expression "(*(code *)(iVar24 + -0x4854))" (( "(") (pointer_expression "*(code *)(iVar24 + -0x4854)" (* "*") (cast_expression "(code *)(iVar24 + -0x4854)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + -0x4854)" (( "(") (binary_expression "iVar24 + -0x4854" (identifier "iVar24") (+ "+") (number_literal "-0x4854")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" (else "else") (compound_statement "{\n    pcVar20 = pcVar22;\n    if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }\n    pcVar3 = pcVar19;\n    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);\n    pcVar22 = pcVar20;\n    if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }\n  }" ({ "{") (expression_statement "pcVar20 = pcVar22;" (assignment_expression "pcVar20 = pcVar22" (identifier "pcVar20") (= "=") (identifier "pcVar22")) (; ";")) (if_statement "if (uVar5 < 0x3a) {\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }\n    else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }" (if "if") (parenthesized_expression "(uVar5 < 0x3a)" (( "(") (binary_expression "uVar5 < 0x3a" (identifier "uVar5") (< "<") (number_literal "0x3a")) () ")")) (compound_statement "{\n      if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }\n      pcVar14 = (code *)FUN_000ea848();\n    }" ({ "{") (if_statement "if (0x33 < uVar5) {\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }" (if "if") (parenthesized_expression "(0x33 < uVar5)" (( "(") (binary_expression "0x33 < uVar5" (number_literal "0x33") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\nLAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);\n        cVar10 = *pcVar8;\n        if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }\n        if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }\n        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);\n        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);\n        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);\n        pcVar14 = *(code **)(param_2 + 0x10);\n        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);\n        if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }\n        goto LAB_000e6670;\n      }" ({ "{") (labeled_statement "LAB_000e67e4:\n        pcVar8 = *(char **)(param_2 + 0xc);" (statement_identifier "LAB_000e67e4") (: ":") (expression_statement "pcVar8 = *(char **)(param_2 + 0xc);" (assignment_expression "pcVar8 = *(char **)(param_2 + 0xc)" (identifier "pcVar8") (= "=") (pointer_expression "*(char **)(param_2 + 0xc)" (* "*") (cast_expression "(char **)(param_2 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (expression_statement "cVar10 = *pcVar8;" (assignment_expression "cVar10 = *pcVar8" (identifier "cVar10") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (if_statement "if (cVar10 == -0x5c) {\n          cVar10 = pcVar8[0x28];\n        }" (if "if") (parenthesized_expression "(cVar10 == -0x5c)" (( "(") (binary_expression "cVar10 == -0x5c" (identifier "cVar10") (== "==") (number_literal "-0x5c")) () ")")) (compound_statement "{\n          cVar10 = pcVar8[0x28];\n        }" ({ "{") (expression_statement "cVar10 = pcVar8[0x28];" (assignment_expression "cVar10 = pcVar8[0x28]" (identifier "cVar10") (= "=") (subscript_expression "pcVar8[0x28]" (identifier "pcVar8") ([ "[") (number_literal "0x28") (] "]"))) (; ";")) (} "}"))) (if_statement "if (cVar10 == -0x5b) {\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }\n        else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" (if "if") (parenthesized_expression "(cVar10 == -0x5b)" (( "(") (binary_expression "cVar10 == -0x5b" (identifier "cVar10") (== "==") (number_literal "-0x5b")) () ")")) (compound_statement "{\n          iVar24 = **(int **)(pcVar8 + 0x14);\nLAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;\n        }" ({ "{") (expression_statement "iVar24 = **(int **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = **(int **)(pcVar8 + 0x14)" (identifier "iVar24") (= "=") (pointer_expression "**(int **)(pcVar8 + 0x14)" (* "*") (pointer_expression "*(int **)(pcVar8 + 0x14)" (* "*") (cast_expression "(int **)(pcVar8 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x14)" (( "(") (binary_expression "pcVar8 + 0x14" (identifier "pcVar8") (+ "+") (number_literal "0x14")) () ")")))))) (; ";")) (labeled_statement "LAB_000e688c:\n          if (1 < iVar24) goto LAB_000e6898;" (statement_identifier "LAB_000e688c") (: ":") (if_statement "if (1 < iVar24) goto LAB_000e6898;" (if "if") (parenthesized_expression "(1 < iVar24)" (( "(") (binary_expression "1 < iVar24" (number_literal "1") (< "<") (identifier "iVar24")) () ")")) (goto_statement "goto LAB_000e6898;" (goto "goto") (statement_identifier "LAB_000e6898") (; ";")))) (} "}")) (else_clause "else if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" (else "else") (if_statement "if (cVar10 == '\x7f') {\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" (if "if") (parenthesized_expression "(cVar10 == '\x7f')" (( "(") (binary_expression "cVar10 == '\x7f'" (identifier "cVar10") (== "==") (char_literal "'\x7f'" (' "'") (escape_sequence "\x7f") (' "'"))) () ")")) (compound_statement "{\n          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);\n          goto LAB_000e688c;\n        }" ({ "{") (expression_statement "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);" (assignment_expression "iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)**(undefined4 **)(pcVar8 + 0x14)" (* "*") (cast_expression "(int *)**(undefined4 **)(pcVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar8 + 0x14)" (* "*") (pointer_expression "*(undefined4 **)(pcVar8 + 0x14)" (* "*") (cast_expression "(undefined4 **)(pcVar8 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x14)" (( "(") (binary_expression "pcVar8 + 0x14" (identifier "pcVar8") (+ "+") (number_literal "0x14")) () ")")))))))) (; ";")) (goto_statement "goto LAB_000e688c;" (goto "goto") (statement_identifier "LAB_000e688c") (; ";")) (} "}"))))) (expression_statement "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);" (assignment_expression "pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8)" (identifier "pcVar19") (= "=") (cast_expression "(code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar23 + 0xaa708) + -0x57b8)" (( "(") (binary_expression "*(int *)(puVar23 + 0xaa708) + -0x57b8" (pointer_expression "*(int *)(puVar23 + 0xaa708)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa708)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa708)" (( "(") (binary_expression "puVar23 + 0xaa708" (identifier "puVar23") (+ "+") (number_literal "0xaa708")) () ")")))) (+ "+") (number_literal "-0x57b8")) () ")")))) (; ";")) (expression_statement "unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);" (assignment_expression "unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94)" (identifier "unaff_s7") (= "=") (cast_expression "(code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ea848(pcVar25,pcVar8,&iStack_94)" (identifier "FUN_000ea848") (argument_list "(pcVar25,pcVar8,&iStack_94)" (( "(") (identifier "pcVar25") (, ",") (identifier "pcVar8") (, ",") (pointer_expression "&iStack_94" (& "&") (identifier "iStack_94")) () ")"))))) (; ";")) (expression_statement "FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);" (call_expression "FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90)" (identifier "FUN_000ea848") (argument_list "(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90)" (( "(") (identifier "pcVar25") (, ",") (pointer_expression "*(uint *)(param_2 + 0x10)" (* "*") (cast_expression "(uint *)(param_2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "&pcStack_90" (& "&") (identifier "pcStack_90")) () ")"))) (; ";")) (expression_statement "pcVar14 = *(code **)(param_2 + 0x10);" (assignment_expression "pcVar14 = *(code **)(param_2 + 0x10)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(param_2 + 0x10)" (* "*") (cast_expression "(code **)(param_2 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))\n                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22)" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc)" (* "*") (cast_expression "(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar23 + 0xaa674) + -0x59dc)" (( "(") (binary_expression "*(int *)(puVar23 + 0xaa674) + -0x59dc" (pointer_expression "*(int *)(puVar23 + 0xaa674)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa674)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa674)" (( "(") (binary_expression "puVar23 + 0xaa674" (identifier "puVar23") (+ "+") (number_literal "0xaa674")) () ")")))) (+ "+") (number_literal "-0x59dc")) () ")")))) () ")")) (argument_list "(pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22)" (( "(") (identifier "pcVar25") (, ",") (pointer_expression "*(uint *)(param_2 + 0xc)" (* "*") (cast_expression "(uint *)(param_2 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "pcVar14") (, ",") (identifier "pcVar22") () ")"))) (; ";")) (if_statement "if (iStack_94 != 0) {\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }" (if "if") (parenthesized_expression "(iStack_94 != 0)" (( "(") (binary_expression "iStack_94 != 0" (identifier "iStack_94") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar24 = *(int *)(puVar23 + 0xaa654);\n          goto LAB_000e6660;\n        }" ({ "{") (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar23 + 0xaa654)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa654)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa654)" (( "(") (binary_expression "puVar23 + 0xaa654" (identifier "puVar23") (+ "+") (number_literal "0xaa654")) () ")"))))) (; ";")) (goto_statement "goto LAB_000e6660;" (goto "goto") (statement_identifier "LAB_000e6660") (; ";")) (} "}"))) (goto_statement "goto LAB_000e6670;" (goto "goto") (statement_identifier "LAB_000e6670") (; ";")) (} "}"))) (expression_statement "pcVar14 = (code *)FUN_000ea848();" (assignment_expression "pcVar14 = (code *)FUN_000ea848()" (identifier "pcVar14") (= "=") (cast_expression "(code *)FUN_000ea848()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ea848()" (identifier "FUN_000ea848") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }" (else "else") (compound_statement "{\n      if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }\nLAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);\n      if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }\n    }" ({ "{") (if_statement "if (uVar5 == 0x9c) {\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }" (if "if") (parenthesized_expression "(uVar5 == 0x9c)" (( "(") (binary_expression "uVar5 == 0x9c" (identifier "uVar5") (== "==") (number_literal "0x9c")) () ")")) (compound_statement "{\nLAB_000e67d0:\n        pcVar22 = (code *)0x34;\n        if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }\n        param_4 = (code *)0x80;\n        goto LAB_000e67e4;\n      }" ({ "{") (labeled_statement "LAB_000e67d0:\n        pcVar22 = (code *)0x34;" (statement_identifier "LAB_000e67d0") (: ":") (expression_statement "pcVar22 = (code *)0x34;" (assignment_expression "pcVar22 = (code *)0x34" (identifier "pcVar22") (= "=") (cast_expression "(code *)0x34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x34"))) (; ";"))) (if_statement "if (uVar5 != 0x2d) {\n          pcVar22 = (code *)0x35;\n        }" (if "if") (parenthesized_expression "(uVar5 != 0x2d)" (( "(") (binary_expression "uVar5 != 0x2d" (identifier "uVar5") (!= "!=") (number_literal "0x2d")) () ")")) (compound_statement "{\n          pcVar22 = (code *)0x35;\n        }" ({ "{") (expression_statement "pcVar22 = (code *)0x35;" (assignment_expression "pcVar22 = (code *)0x35" (identifier "pcVar22") (= "=") (cast_expression "(code *)0x35" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x35"))) (; ";")) (} "}"))) (expression_statement "param_4 = (code *)0x80;" (assignment_expression "param_4 = (code *)0x80" (identifier "param_4") (= "=") (cast_expression "(code *)0x80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x80"))) (; ";")) (goto_statement "goto LAB_000e67e4;" (goto "goto") (statement_identifier "LAB_000e67e4") (; ";")) (} "}"))) (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar23 + 0xaa654)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa654)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa654)" (( "(") (binary_expression "puVar23 + 0xaa654" (identifier "puVar23") (+ "+") (number_literal "0xaa654")) () ")"))))) (; ";")) (if_statement "if (uVar5 == 0xa3) {\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }" (if "if") (parenthesized_expression "(uVar5 == 0xa3)" (( "(") (binary_expression "uVar5 == 0xa3" (identifier "uVar5") (== "==") (number_literal "0xa3")) () ")")) (compound_statement "{\n        if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }\n        goto LAB_000e6654;\n      }" ({ "{") (if_statement "if ((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {\n          FUN_000e60cc();\n        }\n        else {\n          FUN_000e6550();\n        }" (if "if") (parenthesized_expression "((param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'))" (( "(") (binary_expression "(param_2[0x28] == (code)0x9c) ==\n            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" (parenthesized_expression "(param_2[0x28] == (code)0x9c)" (( "(") (binary_expression "param_2[0x28] == (code)0x9c" (subscript_expression "param_2[0x28]" (identifier "param_2") ([ "[") (number_literal "0x28") (] "]")) (== "==") (cast_expression "(code)0x9c" (( "(") (type_descriptor "code" (type_identifier "code")) () ")") (number_literal "0x9c"))) () ")")) (== "==") (parenthesized_expression "(*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" (* "*") (cast_expression "(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4)" (( "(") (binary_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4" (pointer_expression "*(int *)(*(uint *)(param_2 + 0x10) + 8)" (* "*") (cast_expression "(int *)(*(uint *)(param_2 + 0x10) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(param_2 + 0x10) + 8)" (( "(") (binary_expression "*(uint *)(param_2 + 0x10) + 8" (pointer_expression "*(uint *)(param_2 + 0x10)" (* "*") (cast_expression "(uint *)(param_2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          FUN_000e60cc();\n        }" ({ "{") (expression_statement "FUN_000e60cc();" (call_expression "FUN_000e60cc()" (identifier "FUN_000e60cc") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_000e6550();\n        }" (else "else") (compound_statement "{\n          FUN_000e6550();\n        }" ({ "{") (expression_statement "FUN_000e6550();" (call_expression "FUN_000e6550()" (identifier "FUN_000e6550") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_000e6654;" (goto "goto") (statement_identifier "LAB_000e6654") (; ";")) (} "}"))) (labeled_statement "LAB_000e689c:\n      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);" (statement_identifier "LAB_000e689c") (: ":") (expression_statement "iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);" (assignment_expression "iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2)" (identifier "iVar24") (= "=") (call_expression "(*(code *)(iVar24 + -0x4e14))(param_2)" (parenthesized_expression "(*(code *)(iVar24 + -0x4e14))" (( "(") (pointer_expression "*(code *)(iVar24 + -0x4e14)" (* "*") (cast_expression "(code *)(iVar24 + -0x4e14)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + -0x4e14)" (( "(") (binary_expression "iVar24 + -0x4e14" (identifier "iVar24") (+ "+") (number_literal "-0x4e14")) () ")")))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";"))) (if_statement "if (iVar24 == 0) {\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }\n      else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar3 = param_2;\n        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();\n        pcVar22 = pcVar20;\n        if (iVar24 != 0) goto LAB_000e6654;\n        param_4 = (code *)(uint)(param_4 != (code *)0x0);\n        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);\n        pcVar22 = (code *)&DAT_00000014;\n      }" ({ "{") (expression_statement "pcVar3 = param_2;" (assignment_expression "pcVar3 = param_2" (identifier "pcVar3") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();" (assignment_expression "iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))()" (identifier "iVar24") (= "=") (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))()" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c)" (* "*") (cast_expression "(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar23 + 0xaa654) + -0x4d8c)" (( "(") (binary_expression "*(int *)(puVar23 + 0xaa654) + -0x4d8c" (pointer_expression "*(int *)(puVar23 + 0xaa654)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa654)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa654)" (( "(") (binary_expression "puVar23 + 0xaa654" (identifier "puVar23") (+ "+") (number_literal "0xaa654")) () ")")))) (+ "+") (number_literal "-0x4d8c")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" (identifier "pcVar22") (= "=") (identifier "pcVar20")) (; ";")) (if_statement "if (iVar24 != 0) goto LAB_000e6654;" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000e6654;" (goto "goto") (statement_identifier "LAB_000e6654") (; ";"))) (expression_statement "param_4 = (code *)(uint)(param_4 != (code *)0x0);" (assignment_expression "param_4 = (code *)(uint)(param_4 != (code *)0x0)" (identifier "param_4") (= "=") (cast_expression "(code *)(uint)(param_4 != (code *)0x0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(param_4 != (code *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 != (code *)0x0)" (( "(") (binary_expression "param_4 != (code *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (expression_statement "pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);" (assignment_expression "pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94)" (identifier "pcVar14") (= "=") (cast_expression "(code *)FUN_000ea848(pcVar25,param_2,&iStack_94)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ea848(pcVar25,param_2,&iStack_94)" (identifier "FUN_000ea848") (argument_list "(pcVar25,param_2,&iStack_94)" (( "(") (identifier "pcVar25") (, ",") (identifier "param_2") (, ",") (pointer_expression "&iStack_94" (& "&") (identifier "iStack_94")) () ")"))))) (; ";")) (expression_statement "pcVar22 = (code *)&DAT_00000014;" (assignment_expression "pcVar22 = (code *)&DAT_00000014" (identifier "pcVar22") (= "=") (cast_expression "(code *)&DAT_00000014" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000014" (& "&") (identifier "DAT_00000014")))) (; ";")) (} "}")) (else_clause "else {\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }" (else "else") (compound_statement "{\n        pcVar14 = (code *)0x0;\n        pcVar22 = (code *)&DAT_0000000b;\n      }" ({ "{") (expression_statement "pcVar14 = (code *)0x0;" (assignment_expression "pcVar14 = (code *)0x0" (identifier "pcVar14") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar22 = (code *)&DAT_0000000b;" (assignment_expression "pcVar22 = (code *)&DAT_0000000b" (identifier "pcVar22") (= "=") (cast_expression "(code *)&DAT_0000000b" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000000b" (& "&") (identifier "DAT_0000000b")))) (; ";")) (} "}")))) (} "}")))) (expression_statement "pcVar3 = pcVar19;" (assignment_expression "pcVar3 = pcVar19" (identifier "pcVar3") (= "=") (identifier "pcVar19")) (; ";")) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4)" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc)" (* "*") (cast_expression "(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar23 + 0xaa670) + 0x10fc)" (( "(") (binary_expression "*(int *)(puVar23 + 0xaa670) + 0x10fc" (pointer_expression "*(int *)(puVar23 + 0xaa670)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa670)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa670)" (( "(") (binary_expression "puVar23 + 0xaa670" (identifier "puVar23") (+ "+") (number_literal "0xaa670")) () ")")))) (+ "+") (number_literal "0x10fc")) () ")")))) () ")")) (argument_list "(pcVar19,pcVar22,pcVar14,pcVar4)" (( "(") (identifier "pcVar19") (, ",") (identifier "pcVar22") (, ",") (identifier "pcVar14") (, ",") (identifier "pcVar4") () ")"))) (; ";")) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" (identifier "pcVar22") (= "=") (identifier "pcVar20")) (; ";")) (if_statement "if (iStack_94 != 0) {\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }" (if "if") (parenthesized_expression "(iStack_94 != 0)" (( "(") (binary_expression "iStack_94 != 0" (identifier "iStack_94") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar24 = *(int *)(puVar23 + 0xaa654);\n      goto LAB_000e6660;\n    }" ({ "{") (expression_statement "iVar24 = *(int *)(puVar23 + 0xaa654);" (assignment_expression "iVar24 = *(int *)(puVar23 + 0xaa654)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar23 + 0xaa654)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa654)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa654)" (( "(") (binary_expression "puVar23 + 0xaa654" (identifier "puVar23") (+ "+") (number_literal "0xaa654")) () ")"))))) (; ";")) (goto_statement "goto LAB_000e6660;" (goto "goto") (statement_identifier "LAB_000e6660") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000e6670:\n  pcVar26 = pcStack_90;" (statement_identifier "LAB_000e6670") (: ":") (expression_statement "pcVar26 = pcStack_90;" (assignment_expression "pcVar26 = pcStack_90" (identifier "pcVar26") (= "=") (identifier "pcStack_90")) (; ";"))) (expression_statement "pcStack_e8 = param_2;" (assignment_expression "pcStack_e8 = param_2" (identifier "pcStack_e8") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pcVar16 = pcVar25;" (assignment_expression "pcVar16 = pcVar25" (identifier "pcVar16") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "pcVar20 = param_4;" (assignment_expression "pcVar20 = param_4" (identifier "pcVar20") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pcVar21 = pcVar4;" (assignment_expression "pcVar21 = pcVar4" (identifier "pcVar21") (= "=") (identifier "pcVar4")) (; ";")) (if_statement "if (pcStack_90 != (code *)0x0) {\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }" (if "if") (parenthesized_expression "(pcStack_90 != (code *)0x0)" (( "(") (binary_expression "pcStack_90 != (code *)0x0" (identifier "pcStack_90") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar3 = pcVar25;\n    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();\n  }" ({ "{") (expression_statement "pcVar3 = pcVar25;" (assignment_expression "pcVar3 = pcVar25" (identifier "pcVar3") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();" (call_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))()" (parenthesized_expression "(*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854)" (* "*") (cast_expression "(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar23 + 0xaa654) + -0x4854)" (( "(") (binary_expression "*(int *)(puVar23 + 0xaa654) + -0x4854" (pointer_expression "*(int *)(puVar23 + 0xaa654)" (* "*") (cast_expression "(int *)(puVar23 + 0xaa654)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0xaa654)" (( "(") (binary_expression "puVar23 + 0xaa654" (identifier "puVar23") (+ "+") (number_literal "0xaa654")) () ")")))) (+ "+") (number_literal "-0x4854")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000e667c:\n  if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }" (statement_identifier "LAB_000e667c") (: ":") (if_statement "if (pcStack_8c == *(code **)pcVar17) {\n    return *(code **)pcVar17;\n  }" (if "if") (parenthesized_expression "(pcStack_8c == *(code **)pcVar17)" (( "(") (binary_expression "pcStack_8c == *(code **)pcVar17" (identifier "pcStack_8c") (== "==") (pointer_expression "*(code **)pcVar17" (* "*") (cast_expression "(code **)pcVar17" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar17")))) () ")")) (compound_statement "{\n    return *(code **)pcVar17;\n  }" ({ "{") (return_statement "return *(code **)pcVar17;" (return "return") (pointer_expression "*(code **)pcVar17" (* "*") (cast_expression "(code **)pcVar17" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar17"))) (; ";")) (} "}")))) (expression_statement "pcVar25 = *(code **)(puVar23 + 0xaa8a8);" (assignment_expression "pcVar25 = *(code **)(puVar23 + 0xaa8a8)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puVar23 + 0xaa8a8)" (* "*") (cast_expression "(code **)(puVar23 + 0xaa8a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0xaa8a8)" (( "(") (binary_expression "puVar23 + 0xaa8a8" (identifier "puVar23") (+ "+") (number_literal "0xaa8a8")) () ")"))))) (; ";")) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar15 = *(int **)(pcVar25 + 0xaa46c);" (assignment_expression "piVar15 = *(int **)(pcVar25 + 0xaa46c)" (identifier "piVar15") (= "=") (pointer_expression "*(int **)(pcVar25 + 0xaa46c)" (* "*") (cast_expression "(int **)(pcVar25 + 0xaa46c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0xaa46c)" (( "(") (binary_expression "pcVar25 + 0xaa46c" (identifier "pcVar25") (+ "+") (number_literal "0xaa46c")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(uint *)(pcVar3 + 8);" (assignment_expression "uVar5 = *(uint *)(pcVar3 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(pcVar3 + 8)" (* "*") (cast_expression "(uint *)(pcVar3 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 8)" (( "(") (binary_expression "pcVar3 + 8" (identifier "pcVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iStack_16c = 0;" (assignment_expression "iStack_16c = 0" (identifier "iStack_16c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_168 = 0;" (assignment_expression "iStack_168 = 0" (identifier "iStack_168") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_ec = *piVar15;" (assignment_expression "iStack_ec = *piVar15" (identifier "iStack_ec") (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (expression_statement "pcStack_e4 = pcVar16;" (assignment_expression "pcStack_e4 = pcVar16" (identifier "pcStack_e4") (= "=") (identifier "pcVar16")) (; ";")) (expression_statement "pcStack_e0 = pcVar17;" (assignment_expression "pcStack_e0 = pcVar17" (identifier "pcStack_e0") (= "=") (identifier "pcVar17")) (; ";")) (expression_statement "pcStack_dc = pcVar19;" (assignment_expression "pcStack_dc = pcVar19" (identifier "pcStack_dc") (= "=") (identifier "pcVar19")) (; ";")) (expression_statement "pcStack_d8 = pcVar20;" (assignment_expression "pcStack_d8 = pcVar20" (identifier "pcStack_d8") (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "pcStack_d4 = pcVar21;" (assignment_expression "pcStack_d4 = pcVar21" (identifier "pcStack_d4") (= "=") (identifier "pcVar21")) (; ";")) (expression_statement "pcStack_d0 = pcVar22;" (assignment_expression "pcStack_d0 = pcVar22" (identifier "pcStack_d0") (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "pcStack_cc = unaff_s7;" (assignment_expression "pcStack_cc = unaff_s7" (identifier "pcStack_cc") (= "=") (identifier "unaff_s7")) (; ";")) (if_statement "if (uVar5 == 0) {\n    pcVar14 = (code *)0x0;\n  }\n  else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar14 = (code *)0x0;\n  }" ({ "{") (expression_statement "pcVar14 = (code *)0x0;" (assignment_expression "pcVar14 = (code *)0x0" (identifier "pcVar14") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" (else "else") (if_statement "if (pcVar26 == (code *)0x0) {\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }\n  else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" (if "if") (parenthesized_expression "(pcVar26 == (code *)0x0)" (( "(") (binary_expression "pcVar26 == (code *)0x0" (identifier "pcVar26") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    pcVar16 = pcVar14;\n  }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (* "*") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa208)" (( "(") (binary_expression "pcVar25 + 0xaa208" (identifier "pcVar25") (+ "+") (number_literal "0xaa208")) () ")")))) (+ "+") (number_literal "0x10fc")) () ")")))) () ")")) (argument_list "(uVar5,0x49,0,pcVar14,0)" (( "(") (identifier "uVar5") (, ",") (number_literal "0x49") (, ",") (number_literal "0") (, ",") (identifier "pcVar14") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "pcVar16 = pcVar14;" (assignment_expression "pcVar16 = pcVar14" (identifier "pcVar16") (= "=") (identifier "pcVar14")) (; ";")) (} "}")) (else_clause "else {\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" (else "else") (compound_statement "{\n    cVar1 = *pcVar26;\n    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;\n    if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }\n    puVar7 = *(uint **)(pcVar26 + 0x14);\n    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n    uVar6 = *puVar7;\n    *(code **)(pcVar3 + 0x38) = pcVar20;\n    uVar13 = *(uint *)(pcVar26 + 0xc);\n    if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }\n    iStack_16c = 0;\n    if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }\n    if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }\n    (*pcStack_1ac)(uVar5,pcVar20);\n    if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n    pcVar16 = pcVar14;\n    pcVar22 = pcVar3;\n    if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }\n  }" ({ "{") (expression_statement "cVar1 = *pcVar26;" (assignment_expression "cVar1 = *pcVar26" (identifier "cVar1") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (expression_statement "uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;" (assignment_expression "uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff" (identifier "uVar6") (= "=") (binary_expression "(uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff" (call_expression "(uint)((code *)(uint)(byte)cVar1 + -0x13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((code *)(uint)(byte)cVar1 + -0x13)" (( "(") (binary_expression "(code *)(uint)(byte)cVar1 + -0x13" (cast_expression "(code *)(uint)(byte)cVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)(byte)cVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)cVar1" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "cVar1")))) (+ "+") (number_literal "-0x13")) () ")"))) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (uVar6 < 0x97) {\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }" (if "if") (parenthesized_expression "(uVar6 < 0x97)" (( "(") (binary_expression "uVar6 < 0x97" (identifier "uVar6") (< "<") (number_literal "0x97")) () ")")) (compound_statement "{\n                    \n                    \n      pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();\n      return pcVar20;\n    }" ({ "{") (expression_statement "pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();" (assignment_expression "pcVar20 = (code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))()" (identifier "pcVar20") (= "=") (cast_expression "(code *)(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))()" (parenthesized_expression "(*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))" (( "(") (pointer_expression "*(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68)" (* "*") (parenthesized_expression "(pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68)" (( "(") (binary_expression "pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68" (binary_expression "pcVar25 +\n                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" (identifier "pcVar25") (+ "+") (pointer_expression "*(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" (* "*") (cast_expression "(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4" (binary_expression "*(int *)(pcVar25 + 0xa9fa4) + 0x3d88" (pointer_expression "*(int *)(pcVar25 + 0xa9fa4)" (* "*") (cast_expression "(int *)(pcVar25 + 0xa9fa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xa9fa4)" (( "(") (binary_expression "pcVar25 + 0xa9fa4" (identifier "pcVar25") (+ "+") (number_literal "0xa9fa4")) () ")")))) (+ "+") (number_literal "0x3d88")) (+ "+") (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0xb1f68")) () ")"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pcVar20;" (return "return") (identifier "pcVar20") (; ";")) (} "}"))) (expression_statement "puVar7 = *(uint **)(pcVar26 + 0x14);" (assignment_expression "puVar7 = *(uint **)(pcVar26 + 0x14)" (identifier "puVar7") (= "=") (pointer_expression "*(uint **)(pcVar26 + 0x14)" (* "*") (cast_expression "(uint **)(pcVar26 + 0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x14)" (( "(") (binary_expression "pcVar26 + 0x14" (identifier "pcVar26") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);" (assignment_expression "pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1)" (identifier "pcVar20") (= "=") (cast_expression "(code *)(*(uint *)(pcVar3 + 0x38) - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(pcVar3 + 0x38) - 1)" (( "(") (binary_expression "*(uint *)(pcVar3 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar3 + 0x38)" (* "*") (cast_expression "(uint *)(pcVar3 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 0x38)" (( "(") (binary_expression "pcVar3 + 0x38" (identifier "pcVar3") (+ "+") (number_literal "0x38")) () ")")))) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar6 = *puVar7;" (assignment_expression "uVar6 = *puVar7" (identifier "uVar6") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "*(code **)(pcVar3 + 0x38) = pcVar20;" (assignment_expression "*(code **)(pcVar3 + 0x38) = pcVar20" (pointer_expression "*(code **)(pcVar3 + 0x38)" (* "*") (cast_expression "(code **)(pcVar3 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar3 + 0x38)" (( "(") (binary_expression "pcVar3 + 0x38" (identifier "pcVar3") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "uVar13 = *(uint *)(pcVar26 + 0xc);" (assignment_expression "uVar13 = *(uint *)(pcVar26 + 0xc)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(pcVar26 + 0xc)" (* "*") (cast_expression "(uint *)(pcVar26 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0xc)" (( "(") (binary_expression "pcVar26 + 0xc" (identifier "pcVar26") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (uVar13 == 0) {\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }\n    else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar26 = (code *)0x0;\n      pcVar17 = (code *)(uint)(byte)cVar1;\n    }" ({ "{") (expression_statement "pcVar26 = (code *)0x0;" (assignment_expression "pcVar26 = (code *)0x0" (identifier "pcVar26") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar17 = (code *)(uint)(byte)cVar1;" (assignment_expression "pcVar17 = (code *)(uint)(byte)cVar1" (identifier "pcVar17") (= "=") (cast_expression "(code *)(uint)(byte)cVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)(byte)cVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)cVar1" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "cVar1"))))) (; ";")) (} "}")) (else_clause "else {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }" (else "else") (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);\n      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);\n      uStack_134 = auStack_15c[0];\n      pcVar26 = (code *)&uStack_124;\n      uStack_158 = uStack_158 & 0xffffefff;\n      auStack_15c[0] = (code)0xa4;\n      uStack_120 = 0;\n      uStack_11c = 0;\n      pcStack_114 = (code *)0x0;\n      uStack_110 = 0;\n      uStack_10c = 0;\n      uStack_108 = 0;\n      uStack_104 = 0;\n      uStack_100 = 0;\n      uStack_fc = 0;\n      uStack_f8 = 0;\n      uStack_f4 = 0;\n      uStack_f0 = 0;\n      uStack_124 = 0x35000000;\n      pcVar17 = (code *)auStack_15c;\n      pcStack_118 = (code *)auStack_15c;\n    }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" (* "*") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa1f0) + -0x69a4" (pointer_expression "*(int *)(pcVar25 + 0xaa1f0)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa1f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa1f0)" (( "(") (binary_expression "pcVar25 + 0xaa1f0" (identifier "pcVar25") (+ "+") (number_literal "0xaa1f0")) () ")")))) (+ "+") (number_literal "-0x69a4")) () ")")))) () ")")) (argument_list "(auStack_15c)" (( "(") (identifier "auStack_15c") () ")"))) (; ";")) (expression_statement "uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);" (assignment_expression "uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c)" (identifier "uStack_140") (= "=") (call_expression "FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c)" (identifier "FUN_000eaaf0") (argument_list "(pcVar3,auStack_15c,&iStack_16c)" (( "(") (identifier "pcVar3") (, ",") (identifier "auStack_15c") (, ",") (pointer_expression "&iStack_16c" (& "&") (identifier "iStack_16c")) () ")")))) (; ";")) (expression_statement "uStack_134 = auStack_15c[0];" (assignment_expression "uStack_134 = auStack_15c[0]" (identifier "uStack_134") (= "=") (subscript_expression "auStack_15c[0]" (identifier "auStack_15c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pcVar26 = (code *)&uStack_124;" (assignment_expression "pcVar26 = (code *)&uStack_124" (identifier "pcVar26") (= "=") (cast_expression "(code *)&uStack_124" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_124" (& "&") (identifier "uStack_124")))) (; ";")) (expression_statement "uStack_158 = uStack_158 & 0xffffefff;" (assignment_expression "uStack_158 = uStack_158 & 0xffffefff" (identifier "uStack_158") (= "=") (binary_expression "uStack_158 & 0xffffefff" (identifier "uStack_158") (& "&") (number_literal "0xffffefff"))) (; ";")) (expression_statement "auStack_15c[0] = (code)0xa4;" (assignment_expression "auStack_15c[0] = (code)0xa4" (subscript_expression "auStack_15c[0]" (identifier "auStack_15c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(code)0xa4" (( "(") (type_descriptor "code" (type_identifier "code")) () ")") (number_literal "0xa4"))) (; ";")) (expression_statement "uStack_120 = 0;" (assignment_expression "uStack_120 = 0" (identifier "uStack_120") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_11c = 0;" (assignment_expression "uStack_11c = 0" (identifier "uStack_11c") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcStack_114 = (code *)0x0;" (assignment_expression "pcStack_114 = (code *)0x0" (identifier "pcStack_114") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_110 = 0;" (assignment_expression "uStack_110 = 0" (identifier "uStack_110") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_10c = 0;" (assignment_expression "uStack_10c = 0" (identifier "uStack_10c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" (identifier "uStack_108") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_104 = 0;" (assignment_expression "uStack_104 = 0" (identifier "uStack_104") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_100 = 0;" (assignment_expression "uStack_100 = 0" (identifier "uStack_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_fc = 0;" (assignment_expression "uStack_fc = 0" (identifier "uStack_fc") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_f8 = 0;" (assignment_expression "uStack_f8 = 0" (identifier "uStack_f8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" (identifier "uStack_f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" (identifier "uStack_f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_124 = 0x35000000;" (assignment_expression "uStack_124 = 0x35000000" (identifier "uStack_124") (= "=") (number_literal "0x35000000")) (; ";")) (expression_statement "pcVar17 = (code *)auStack_15c;" (assignment_expression "pcVar17 = (code *)auStack_15c" (identifier "pcVar17") (= "=") (cast_expression "(code *)auStack_15c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_15c"))) (; ";")) (expression_statement "pcStack_118 = (code *)auStack_15c;" (assignment_expression "pcStack_118 = (code *)auStack_15c" (identifier "pcStack_118") (= "=") (cast_expression "(code *)auStack_15c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_15c"))) (; ";")) (} "}")))) (expression_statement "iStack_16c = 0;" (assignment_expression "iStack_16c = 0" (identifier "iStack_16c") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((int)(uVar6 - 1) < 1) {\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }\n    else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }" (if "if") (parenthesized_expression "((int)(uVar6 - 1) < 1)" (( "(") (binary_expression "(int)(uVar6 - 1) < 1" (cast_expression "(int)(uVar6 - 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 - 1)" (( "(") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1")) () ")"))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      pcVar21 = *(code **)(pcVar25 + 0xaa208);\n      pcStack_1ac = pcVar21 + 0xd78;\n    }" ({ "{") (expression_statement "pcVar21 = *(code **)(pcVar25 + 0xaa208);" (assignment_expression "pcVar21 = *(code **)(pcVar25 + 0xaa208)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcVar25 + 0xaa208)" (* "*") (cast_expression "(code **)(pcVar25 + 0xaa208)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0xaa208)" (( "(") (binary_expression "pcVar25 + 0xaa208" (identifier "pcVar25") (+ "+") (number_literal "0xaa208")) () ")"))))) (; ";")) (expression_statement "pcStack_1ac = pcVar21 + 0xd78;" (assignment_expression "pcStack_1ac = pcVar21 + 0xd78" (identifier "pcStack_1ac") (= "=") (binary_expression "pcVar21 + 0xd78" (identifier "pcVar21") (+ "+") (number_literal "0xd78"))) (; ";")) (} "}")) (else_clause "else {\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }" (else "else") (compound_statement "{\n      iVar18 = *(int *)(pcVar25 + 0xaa208);\n      iVar12 = *(int *)(pcVar25 + 0xaa2a0);\n      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);\n      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);\n      iVar24 = *(int *)(pcVar25 + 0xaa218);\n      pcVar4 = (code *)(puVar7 + 1);\n      do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);\n    }" ({ "{") (expression_statement "iVar18 = *(int *)(pcVar25 + 0xaa208);" (assignment_expression "iVar18 = *(int *)(pcVar25 + 0xaa208)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(pcVar25 + 0xaa208)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa208)" (( "(") (binary_expression "pcVar25 + 0xaa208" (identifier "pcVar25") (+ "+") (number_literal "0xaa208")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(pcVar25 + 0xaa2a0);" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0xaa2a0)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(pcVar25 + 0xaa2a0)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa2a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa2a0)" (( "(") (binary_expression "pcVar25 + 0xaa2a0" (identifier "pcVar25") (+ "+") (number_literal "0xaa2a0")) () ")"))))) (; ";")) (expression_statement "pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);" (assignment_expression "pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78)" (identifier "pcStack_1ac") (= "=") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0xd78)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0xd78" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa208)" (( "(") (binary_expression "pcVar25 + 0xaa208" (identifier "pcVar25") (+ "+") (number_literal "0xaa208")) () ")")))) (+ "+") (number_literal "0xd78")) () ")")))) (; ";")) (expression_statement "pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);" (assignment_expression "pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb)" (identifier "pcVar19") (= "=") (cast_expression "(code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb)" (( "(") (binary_expression "puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb" (binary_expression "puVar7 + (uVar6 - 2 >> 1) * 10" (identifier "puVar7") (+ "+") (binary_expression "(uVar6 - 2 >> 1) * 10" (parenthesized_expression "(uVar6 - 2 >> 1)" (( "(") (binary_expression "uVar6 - 2 >> 1" (binary_expression "uVar6 - 2" (identifier "uVar6") (- "-") (number_literal "2")) (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "10"))) (+ "+") (number_literal "0xb")) () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)(pcVar25 + 0xaa218);" (assignment_expression "iVar24 = *(int *)(pcVar25 + 0xaa218)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(pcVar25 + 0xaa218)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa218)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa218)" (( "(") (binary_expression "pcVar25 + 0xaa218" (identifier "pcVar25") (+ "+") (number_literal "0xaa218")) () ")"))))) (; ";")) (expression_statement "pcVar4 = (code *)(puVar7 + 1);" (assignment_expression "pcVar4 = (code *)(puVar7 + 1)" (identifier "pcVar4") (= "=") (cast_expression "(code *)(puVar7 + 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 1)" (( "(") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (do_statement "do {\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      } while (pcVar19 != pcVar21);" (do "do") (compound_statement "{\n        pcVar16 = *(code **)pcVar4;\n        if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }\n        pcStack_114 = pcVar16;\n        pcVar21 = pcVar4 + 0x28;\n        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);\n        *(code **)(pcVar3 + 0x38) = pcVar17;\n        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);\n        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);\n        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);\n        (*pcStack_1ac)(uVar5,pcVar17);\n        pcVar4 = pcVar21;\n      }" ({ "{") (expression_statement "pcVar16 = *(code **)pcVar4;" (assignment_expression "pcVar16 = *(code **)pcVar4" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)pcVar4" (* "*") (cast_expression "(code **)pcVar4" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar4")))) (; ";")) (if_statement "if (uVar13 == 0) {\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar26 = *(code **)pcVar4;\n          pcVar16 = pcStack_114;\n        }" ({ "{") (expression_statement "pcVar26 = *(code **)pcVar4;" (assignment_expression "pcVar26 = *(code **)pcVar4" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)pcVar4" (* "*") (cast_expression "(code **)pcVar4" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar4")))) (; ";")) (expression_statement "pcVar16 = pcStack_114;" (assignment_expression "pcVar16 = pcStack_114" (identifier "pcVar16") (= "=") (identifier "pcStack_114")) (; ";")) (} "}"))) (expression_statement "pcStack_114 = pcVar16;" (assignment_expression "pcStack_114 = pcVar16" (identifier "pcStack_114") (= "=") (identifier "pcVar16")) (; ";")) (expression_statement "pcVar21 = pcVar4 + 0x28;" (assignment_expression "pcVar21 = pcVar4 + 0x28" (identifier "pcVar21") (= "=") (binary_expression "pcVar4 + 0x28" (identifier "pcVar4") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);" (assignment_expression "pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1)" (identifier "pcVar17") (= "=") (cast_expression "(code *)(*(uint *)(pcVar3 + 0x38) - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(pcVar3 + 0x38) - 1)" (( "(") (binary_expression "*(uint *)(pcVar3 + 0x38) - 1" (pointer_expression "*(uint *)(pcVar3 + 0x38)" (* "*") (cast_expression "(uint *)(pcVar3 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 0x38)" (( "(") (binary_expression "pcVar3 + 0x38" (identifier "pcVar3") (+ "+") (number_literal "0x38")) () ")")))) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(code **)(pcVar3 + 0x38) = pcVar17;" (assignment_expression "*(code **)(pcVar3 + 0x38) = pcVar17" (pointer_expression "*(code **)(pcVar3 + 0x38)" (* "*") (cast_expression "(code **)(pcVar3 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar3 + 0x38)" (( "(") (binary_expression "pcVar3 + 0x38" (identifier "pcVar3") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "pcVar17")) (; ";")) (expression_statement "(*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);" (call_expression "(*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10)" (parenthesized_expression "(*(code *)(iVar24 + 0x6550))" (( "(") (pointer_expression "*(code *)(iVar24 + 0x6550)" (* "*") (cast_expression "(code *)(iVar24 + 0x6550)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x6550)" (( "(") (binary_expression "iVar24 + 0x6550" (identifier "iVar24") (+ "+") (number_literal "0x6550")) () ")")))) () ")")) (argument_list "(pcVar3,pcVar26,pcVar17,0x10)" (( "(") (identifier "pcVar3") (, ",") (identifier "pcVar26") (, ",") (identifier "pcVar17") (, ",") (number_literal "0x10") () ")"))) (; ";")) (expression_statement "(*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);" (call_expression "(*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14)" (parenthesized_expression "(*(code *)(iVar12 + -0x7cdc))" (( "(") (pointer_expression "*(code *)(iVar12 + -0x7cdc)" (* "*") (cast_expression "(code *)(iVar12 + -0x7cdc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + -0x7cdc)" (( "(") (binary_expression "iVar12 + -0x7cdc" (identifier "iVar12") (+ "+") (number_literal "-0x7cdc")) () ")")))) () ")")) (argument_list "(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14)" (( "(") (identifier "pcVar3") (, ",") (pointer_expression "*(uint *)(pcVar4 + 0x14)" (* "*") (cast_expression "(uint *)(pcVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x14)" (( "(") (binary_expression "pcVar4 + 0x14" (identifier "pcVar4") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "pcVar14") () ")"))) (; ";")) (expression_statement "(*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);" (call_expression "(*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0)" (parenthesized_expression "(*(code *)(iVar18 + 0x10fc))" (( "(") (pointer_expression "*(code *)(iVar18 + 0x10fc)" (* "*") (cast_expression "(code *)(iVar18 + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x10fc)" (( "(") (binary_expression "iVar18 + 0x10fc" (identifier "iVar18") (+ "+") (number_literal "0x10fc")) () ")")))) () ")")) (argument_list "(uVar5,0xb,0,pcVar20,0)" (( "(") (identifier "uVar5") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (identifier "pcVar20") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcStack_1ac)(uVar5,pcVar17);" (call_expression "(*pcStack_1ac)(uVar5,pcVar17)" (parenthesized_expression "(*pcStack_1ac)" (( "(") (pointer_expression "*pcStack_1ac" (* "*") (identifier "pcStack_1ac")) () ")")) (argument_list "(uVar5,pcVar17)" (( "(") (identifier "uVar5") (, ",") (identifier "pcVar17") () ")"))) (; ";")) (expression_statement "pcVar4 = pcVar21;" (assignment_expression "pcVar4 = pcVar21" (identifier "pcVar4") (= "=") (identifier "pcVar21")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar19 != pcVar21)" (( "(") (binary_expression "pcVar19 != pcVar21" (identifier "pcVar19") (!= "!=") (identifier "pcVar21")) () ")")) (; ";")) (} "}")))) (if_statement "if ((uVar6 & 1) == 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }\n    else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }" (if "if") (parenthesized_expression "((uVar6 & 1) == 0)" (( "(") (binary_expression "(uVar6 & 1) == 0" (parenthesized_expression "(uVar6 & 1)" (( "(") (binary_expression "uVar6 & 1" (identifier "uVar6") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);\n    }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (* "*") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa208)" (( "(") (binary_expression "pcVar25 + 0xaa208" (identifier "pcVar25") (+ "+") (number_literal "0xaa208")) () ")")))) (+ "+") (number_literal "0x10fc")) () ")")))) () ")")) (argument_list "(uVar5,0x49,0,pcVar14,0)" (( "(") (identifier "uVar5") (, ",") (number_literal "0x49") (, ",") (number_literal "0") (, ",") (identifier "pcVar14") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }" (else "else") (compound_statement "{\n      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);\n    }" ({ "{") (expression_statement "FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);" (call_expression "FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14)" (identifier "FUN_000e8324") (argument_list "(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14)" (( "(") (identifier "pcVar3") (, ",") (subscript_expression "puVar7[(uVar6 - 1) * 5 + 1]" (identifier "puVar7") ([ "[") (binary_expression "(uVar6 - 1) * 5 + 1" (binary_expression "(uVar6 - 1) * 5" (parenthesized_expression "(uVar6 - 1)" (( "(") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1")) () ")")) (* "*") (number_literal "5")) (+ "+") (number_literal "1")) (] "]")) (, ",") (identifier "pcVar14") () ")"))) (; ";")) (} "}")))) (expression_statement "(*pcStack_1ac)(uVar5,pcVar20);" (call_expression "(*pcStack_1ac)(uVar5,pcVar20)" (parenthesized_expression "(*pcStack_1ac)" (( "(") (pointer_expression "*pcStack_1ac" (* "*") (identifier "pcStack_1ac")) () ")")) (argument_list "(uVar5,pcVar20)" (( "(") (identifier "uVar5") (, ",") (identifier "pcVar20") () ")"))) (; ";")) (if_statement "if (iStack_16c != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" (if "if") (parenthesized_expression "(iStack_16c != 0)" (( "(") (binary_expression "iStack_16c != 0" (identifier "iStack_16c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" (* "*") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x4854" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa1ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa1ec)" (( "(") (binary_expression "pcVar25 + 0xaa1ec" (identifier "pcVar25") (+ "+") (number_literal "0xaa1ec")) () ")")))) (+ "+") (number_literal "-0x4854")) () ")")))) () ")")) (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")"))) (; ";")) (expression_statement "pcStack_1ac = pcVar14;" (assignment_expression "pcStack_1ac = pcVar14" (identifier "pcStack_1ac") (= "=") (identifier "pcVar14")) (; ";")) (} "}"))) (expression_statement "pcVar16 = pcVar14;" (assignment_expression "pcVar16 = pcVar14" (identifier "pcVar16") (= "=") (identifier "pcVar14")) (; ";")) (expression_statement "pcVar22 = pcVar3;" (assignment_expression "pcVar22 = pcVar3" (identifier "pcVar22") (= "=") (identifier "pcVar3")) (; ";")) (if_statement "if (iStack_168 != 0) {\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" (if "if") (parenthesized_expression "(iStack_168 != 0)" (( "(") (binary_expression "iStack_168 != 0" (identifier "iStack_168") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);\n      pcStack_1ac = pcVar14;\n    }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" (* "*") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x4854)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x4854" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa1ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa1ec)" (( "(") (binary_expression "pcVar25 + 0xaa1ec" (identifier "pcVar25") (+ "+") (number_literal "0xaa1ec")) () ")")))) (+ "+") (number_literal "-0x4854")) () ")")))) () ")")) (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")"))) (; ";")) (expression_statement "pcStack_1ac = pcVar14;" (assignment_expression "pcStack_1ac = pcVar14" (identifier "pcStack_1ac") (= "=") (identifier "pcVar14")) (; ";")) (} "}"))) (} "}")))))) (do_statement "do {\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }\n    iVar24 = iStack_ec;\n    bVar11 = (**(code **)(pcVar25 + 0xaa440))();\n    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;\n    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);\n    if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }\n    uVar6 = *(uint *)(in_t1 + 4);\n    if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }\n    if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }\n    pcVar14 = pcVar16;\n    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }\n  }" ({ "{") (if_statement "if (iStack_ec == *piVar15) {\n      return pcVar14;\n    }" (if "if") (parenthesized_expression "(iStack_ec == *piVar15)" (( "(") (binary_expression "iStack_ec == *piVar15" (identifier "iStack_ec") (== "==") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) () ")")) (compound_statement "{\n      return pcVar14;\n    }" ({ "{") (return_statement "return pcVar14;" (return "return") (identifier "pcVar14") (; ";")) (} "}"))) (expression_statement "iVar24 = iStack_ec;" (assignment_expression "iVar24 = iStack_ec" (identifier "iVar24") (= "=") (identifier "iStack_ec")) (; ";")) (expression_statement "bVar11 = (**(code **)(pcVar25 + 0xaa440))();" (assignment_expression "bVar11 = (**(code **)(pcVar25 + 0xaa440))()" (identifier "bVar11") (= "=") (call_expression "(**(code **)(pcVar25 + 0xaa440))()" (parenthesized_expression "(**(code **)(pcVar25 + 0xaa440))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0xaa440)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0xaa440)" (* "*") (cast_expression "(code **)(pcVar25 + 0xaa440)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0xaa440)" (( "(") (binary_expression "pcVar25 + 0xaa440" (identifier "pcVar25") (+ "+") (number_literal "0xaa440")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;" (assignment_expression "*(byte *)(iVar24 + 0x28) = bVar11 & 0xc0" (pointer_expression "*(byte *)(iVar24 + 0x28)" (* "*") (cast_expression "(byte *)(iVar24 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x28)" (( "(") (binary_expression "iVar24 + 0x28" (identifier "iVar24") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "bVar11 & 0xc0" (identifier "bVar11") (& "&") (number_literal "0xc0"))) (; ";")) (expression_statement "FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);" (call_expression "FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3)" (identifier "FUN_000eac50") (argument_list "(pcVar22,pcVar20,pcStack_1ac,0,3)" (( "(") (identifier "pcVar22") (, ",") (identifier "pcVar20") (, ",") (identifier "pcStack_1ac") (, ",") (number_literal "0") (, ",") (number_literal "3") () ")"))) (; ";")) (if_statement "if ((int)pcVar19 < 2) {\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }\n    else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }" (if "if") (parenthesized_expression "((int)pcVar19 < 2)" (( "(") (binary_expression "(int)pcVar19 < 2" (cast_expression "(int)pcVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar19")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }\n    }" ({ "{") (if_statement "if (pcVar19 == (code *)0x1) {\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }" (if "if") (parenthesized_expression "(pcVar19 == (code *)0x1)" (( "(") (binary_expression "pcVar19 == (code *)0x1" (identifier "pcVar19") (== "==") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\nLAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);\n        goto LAB_000e8104;\n      }" ({ "{") (labeled_statement "LAB_000e80f8:\n        uVar6 = *(uint *)(pcVar20 + 4);" (statement_identifier "LAB_000e80f8") (: ":") (expression_statement "uVar6 = *(uint *)(pcVar20 + 4);" (assignment_expression "uVar6 = *(uint *)(pcVar20 + 4)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(pcVar20 + 4)" (* "*") (cast_expression "(uint *)(pcVar20 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 4)" (( "(") (binary_expression "pcVar20 + 4" (identifier "pcVar20") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000e8104;" (goto "goto") (statement_identifier "LAB_000e8104") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }" (else "else") (compound_statement "{\n      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;\n      uVar6 = *(uint *)(pcVar20 + 0x18);\nLAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);\n    }" ({ "{") (if_statement "if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;" (if "if") (parenthesized_expression "((*(uint *)(pcVar26 + 4) & 0x80) == 0)" (( "(") (binary_expression "(*(uint *)(pcVar26 + 4) & 0x80) == 0" (parenthesized_expression "(*(uint *)(pcVar26 + 4) & 0x80)" (( "(") (binary_expression "*(uint *)(pcVar26 + 4) & 0x80" (pointer_expression "*(uint *)(pcVar26 + 4)" (* "*") (cast_expression "(uint *)(pcVar26 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 4)" (( "(") (binary_expression "pcVar26 + 4" (identifier "pcVar26") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000e80f8;" (goto "goto") (statement_identifier "LAB_000e80f8") (; ";"))) (expression_statement "uVar6 = *(uint *)(pcVar20 + 0x18);" (assignment_expression "uVar6 = *(uint *)(pcVar20 + 0x18)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(pcVar20 + 0x18)" (* "*") (cast_expression "(uint *)(pcVar20 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x18)" (( "(") (binary_expression "pcVar20 + 0x18" (identifier "pcVar20") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (labeled_statement "LAB_000e8104:\n      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);" (statement_identifier "LAB_000e8104") (: ":") (expression_statement "in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);" (assignment_expression "in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6)" (identifier "in_t1") (= "=") (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" (* "*") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa1f0) + 0xb8c" (pointer_expression "*(int *)(pcVar25 + 0xaa1f0)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa1f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa1f0)" (( "(") (binary_expression "pcVar25 + 0xaa1f0" (identifier "pcVar25") (+ "+") (number_literal "0xaa1f0")) () ")")))) (+ "+") (number_literal "0xb8c")) () ")")))) () ")")) (argument_list "(pcVar17,in_t1,pcVar19,uVar6)" (( "(") (identifier "pcVar17") (, ",") (identifier "in_t1") (, ",") (identifier "pcVar19") (, ",") (identifier "uVar6") () ")")))) (; ";"))) (} "}")))) (expression_statement "uVar6 = *(uint *)(in_t1 + 4);" (assignment_expression "uVar6 = *(uint *)(in_t1 + 4)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(in_t1 + 4)" (* "*") (cast_expression "(uint *)(in_t1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t1 + 4)" (( "(") (binary_expression "in_t1 + 4" (identifier "in_t1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((uVar6 & 0x20) == 0) {\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }\n    else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }" (if "if") (parenthesized_expression "((uVar6 & 0x20) == 0)" (( "(") (binary_expression "(uVar6 & 0x20) == 0" (parenthesized_expression "(uVar6 & 0x20)" (( "(") (binary_expression "uVar6 & 0x20" (identifier "uVar6") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n    }" ({ "{") (expression_statement "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);" (assignment_expression "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (identifier "pcVar17") (= "=") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa208)" (( "(") (binary_expression "pcVar25 + 0xaa208" (identifier "pcVar25") (+ "+") (number_literal "0xaa208")) () ")")))) (+ "+") (number_literal "0x10fc")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }" (else "else") (compound_statement "{\n      if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }\n      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);\n      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);\n      uVar6 = *(uint *)(in_t1 + 4);\n    }" ({ "{") (if_statement "if (in_t0 == 0) {\n        in_t0 = *(int *)(pcVar17 + 8);\n      }" (if "if") (parenthesized_expression "(in_t0 == 0)" (( "(") (binary_expression "in_t0 == 0" (identifier "in_t0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        in_t0 = *(int *)(pcVar17 + 8);\n      }" ({ "{") (expression_statement "in_t0 = *(int *)(pcVar17 + 8);" (assignment_expression "in_t0 = *(int *)(pcVar17 + 8)" (identifier "in_t0") (= "=") (pointer_expression "*(int *)(pcVar17 + 8)" (* "*") (cast_expression "(int *)(pcVar17 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar17 + 8)" (( "(") (binary_expression "pcVar17 + 8" (identifier "pcVar17") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);" (assignment_expression "pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (identifier "pcVar17") (= "=") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa208) + 0x10fc)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa208) + 0x10fc" (pointer_expression "*(int *)(pcVar25 + 0xaa208)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa208)" (( "(") (binary_expression "pcVar25 + 0xaa208" (identifier "pcVar25") (+ "+") (number_literal "0xaa208")) () ")")))) (+ "+") (number_literal "0x10fc")) () ")")))) (; ";")) (expression_statement "uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);" (assignment_expression "uVar9 = (*pcVar17)(uVar5,0x52,0,0,0)" (identifier "uVar9") (= "=") (call_expression "(*pcVar17)(uVar5,0x52,0,0,0)" (parenthesized_expression "(*pcVar17)" (( "(") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) () ")")) (argument_list "(uVar5,0x52,0,0,0)" (( "(") (identifier "uVar5") (, ",") (number_literal "0x52") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" (* "*") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa1ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa1ec)" (( "(") (binary_expression "pcVar25 + 0xaa1ec" (identifier "pcVar25") (+ "+") (number_literal "0xaa1ec")) () ")")))) (+ "+") (number_literal "0x7a3c")) () ")")))) () ")")) (argument_list "(uVar5,uVar9,in_t0,0xfffffffe)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar9") (, ",") (identifier "in_t0") (, ",") (number_literal "0xfffffffe") () ")"))) (; ";")) (expression_statement "uVar6 = *(uint *)(in_t1 + 4);" (assignment_expression "uVar6 = *(uint *)(in_t1 + 4)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(in_t1 + 4)" (* "*") (cast_expression "(uint *)(in_t1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t1 + 4)" (( "(") (binary_expression "in_t1 + 4" (identifier "in_t1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((uVar6 & 0x8000) == 0) {\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }\n    else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }" (if "if") (parenthesized_expression "((uVar6 & 0x8000) == 0)" (( "(") (binary_expression "(uVar6 & 0x8000) == 0" (parenthesized_expression "(uVar6 & 0x8000)" (( "(") (binary_expression "uVar6 & 0x8000" (identifier "uVar6") (& "&") (number_literal "0x8000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = 0x3f;\n      if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }\n      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);\n      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);\n      if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }\n    }" ({ "{") (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" (identifier "uVar9") (= "=") (number_literal "0x3f")) (; ";")) (if_statement "if (*(uint *)(pcVar22 + 0x34) != 0) {\n        uVar9 = 0x3e;\n      }" (if "if") (parenthesized_expression "(*(uint *)(pcVar22 + 0x34) != 0)" (( "(") (binary_expression "*(uint *)(pcVar22 + 0x34) != 0" (pointer_expression "*(uint *)(pcVar22 + 0x34)" (* "*") (cast_expression "(uint *)(pcVar22 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar22 + 0x34)" (( "(") (binary_expression "pcVar22 + 0x34" (identifier "pcVar22") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar9 = 0x3e;\n      }" ({ "{") (expression_statement "uVar9 = 0x3e;" (assignment_expression "uVar9 = 0x3e" (identifier "uVar9") (= "=") (number_literal "0x3e")) (; ";")) (} "}"))) (expression_statement "uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);" (assignment_expression "uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16)" (identifier "uVar9") (= "=") (call_expression "(*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16)" (parenthesized_expression "(*pcVar17)" (( "(") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) () ")")) (argument_list "(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar9") (, ",") (identifier "pcVar21") (, ",") (identifier "pcStack_1ac") (, ",") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" (* "*") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa1ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa1ec)" (( "(") (binary_expression "pcVar25 + 0xaa1ec" (identifier "pcVar25") (+ "+") (number_literal "0xaa1ec")) () ")")))) (+ "+") (number_literal "0x7a3c")) () ")")))) () ")")) (argument_list "(uVar5,uVar9,in_t1,0xfffffff8)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar9") (, ",") (identifier "in_t1") (, ",") (number_literal "0xfffffff8") () ")"))) (; ";")) (if_statement "if (0 < *(int *)(uVar5 + 0x6c)) {\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }" (if "if") (parenthesized_expression "(0 < *(int *)(uVar5 + 0x6c))" (( "(") (binary_expression "0 < *(int *)(uVar5 + 0x6c)" (number_literal "0") (< "<") (pointer_expression "*(int *)(uVar5 + 0x6c)" (* "*") (cast_expression "(int *)(uVar5 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 + 0x6c)" (( "(") (binary_expression "uVar5 + 0x6c" (identifier "uVar5") (+ "+") (number_literal "0x6c")) () ")"))))) () ")")) (compound_statement "{\n        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;\n      }" ({ "{") (expression_statement "*(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff;" (assignment_expression "*(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =\n             (ushort)pcVar19 & 0xff" (pointer_expression "*(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16)" (* "*") (cast_expression "(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16)" (( "(") (binary_expression "*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16" (binary_expression "*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68)" (binary_expression "*(int *)(uVar5 + 0x6c) * 0x18" (pointer_expression "*(int *)(uVar5 + 0x6c)" (* "*") (cast_expression "(int *)(uVar5 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 + 0x6c)" (( "(") (binary_expression "uVar5 + 0x6c" (identifier "uVar5") (+ "+") (number_literal "0x6c")) () ")")))) (* "*") (number_literal "0x18")) (+ "+") (pointer_expression "*(int *)(uVar5 + 0x68)" (* "*") (cast_expression "(int *)(uVar5 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 + 0x68)" (( "(") (binary_expression "uVar5 + 0x68" (identifier "uVar5") (+ "+") (number_literal "0x68")) () ")"))))) (+ "+") (number_literal "-0x16")) () ")")))) (= "=") (binary_expression "(ushort)pcVar19 & 0xff" (cast_expression "(ushort)pcVar19" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "pcVar19")) (& "&") (number_literal "0xff"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }" (else "else") (compound_statement "{\n      pcVar8 = *(char **)(pcVar20 + 4);\n      if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }\n    }" ({ "{") (expression_statement "pcVar8 = *(char **)(pcVar20 + 4);" (assignment_expression "pcVar8 = *(char **)(pcVar20 + 4)" (identifier "pcVar8") (= "=") (pointer_expression "*(char **)(pcVar20 + 4)" (* "*") (cast_expression "(char **)(pcVar20 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 4)" (( "(") (binary_expression "pcVar20 + 4" (identifier "pcVar20") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*pcVar8 == -0x62) {\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }\n      else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }" (if "if") (parenthesized_expression "(*pcVar8 == -0x62)" (( "(") (binary_expression "*pcVar8 == -0x62" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (== "==") (number_literal "-0x62")) () ")")) (compound_statement "{\n        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;\n      }" ({ "{") (expression_statement "(*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)\n        ;" (call_expression "(*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)" (parenthesized_expression "(*pcVar17)" (( "(") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) () ")")) (argument_list "(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)" (( "(") (identifier "uVar5") (, ",") (number_literal "0x59") (, ",") (pointer_expression "*(undefined4 *)(pcVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(pcVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x1c)" (( "(") (binary_expression "pcVar8 + 0x1c" (identifier "pcVar8") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(pcVar8 + 0x20)" (* "*") (cast_expression "(undefined4 *)(pcVar8 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x20)" (( "(") (binary_expression "pcVar8 + 0x20" (identifier "pcVar8") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "pcVar16") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }" (else "else") (compound_statement "{\n        (*pcVar17)(uVar5,0x49,0,pcVar16,0);\n      }" ({ "{") (expression_statement "(*pcVar17)(uVar5,0x49,0,pcVar16,0);" (call_expression "(*pcVar17)(uVar5,0x49,0,pcVar16,0)" (parenthesized_expression "(*pcVar17)" (( "(") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) () ")")) (argument_list "(uVar5,0x49,0,pcVar16,0)" (( "(") (identifier "uVar5") (, ",") (number_literal "0x49") (, ",") (number_literal "0") (, ",") (identifier "pcVar16") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "pcVar14 = pcVar16;" (assignment_expression "pcVar14 = pcVar16" (identifier "pcVar14") (= "=") (identifier "pcVar16")) (; ";")) (if_statement "if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }" (if "if") (parenthesized_expression "((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0))" (( "(") (binary_expression "(pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)" (parenthesized_expression "(pcVar19 != (code *)0x0)" (( "(") (binary_expression "pcVar19 != (code *)0x0" (identifier "pcVar19") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar21 == (code *)0x0)" (( "(") (binary_expression "pcVar21 == (code *)0x0" (identifier "pcVar21") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }\n    }" ({ "{") (if_statement "if (pcVar19 == (code *)0x1) {\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }\n      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" (if "if") (parenthesized_expression "(pcVar19 == (code *)0x1)" (( "(") (binary_expression "pcVar19 == (code *)0x1" (identifier "pcVar19") (== "==") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);\n      }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);" (call_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac)" (parenthesized_expression "(*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" (* "*") (cast_expression "(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4)" (( "(") (binary_expression "*(int *)(pcVar25 + 0xaa1ec) + -0x47a4" (pointer_expression "*(int *)(pcVar25 + 0xaa1ec)" (* "*") (cast_expression "(int *)(pcVar25 + 0xaa1ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0xaa1ec)" (( "(") (binary_expression "pcVar25 + 0xaa1ec" (identifier "pcVar25") (+ "+") (number_literal "0xaa1ec")) () ")")))) (+ "+") (number_literal "-0x47a4")) () ")")))) () ")")) (argument_list "(pcVar22,pcStack_1ac)" (( "(") (identifier "pcVar22") (, ",") (identifier "pcStack_1ac") () ")"))) (; ";")) (} "}")) (else_clause "else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" (else "else") (if_statement "if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" (if "if") (parenthesized_expression "((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19)" (( "(") (binary_expression "(int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19" (cast_expression "(int)*(uint *)(pcVar22 + 0x1c)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint *)(pcVar22 + 0x1c)" (* "*") (cast_expression "(uint *)(pcVar22 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar22 + 0x1c)" (( "(") (binary_expression "pcVar22 + 0x1c" (identifier "pcVar22") (+ "+") (number_literal "0x1c")) () ")"))))) (< "<") (cast_expression "(int)pcVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar19"))) () ")")) (compound_statement "{\n        *(code **)(pcVar22 + 0x1c) = pcVar19;\n        *(code **)(pcVar22 + 0x20) = pcStack_1ac;\n      }" ({ "{") (expression_statement "*(code **)(pcVar22 + 0x1c) = pcVar19;" (assignment_expression "*(code **)(pcVar22 + 0x1c) = pcVar19" (pointer_expression "*(code **)(pcVar22 + 0x1c)" (* "*") (cast_expression "(code **)(pcVar22 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar22 + 0x1c)" (( "(") (binary_expression "pcVar22 + 0x1c" (identifier "pcVar22") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "pcVar19")) (; ";")) (expression_statement "*(code **)(pcVar22 + 0x20) = pcStack_1ac;" (assignment_expression "*(code **)(pcVar22 + 0x20) = pcStack_1ac" (pointer_expression "*(code **)(pcVar22 + 0x20)" (* "*") (cast_expression "(code **)(pcVar22 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar22 + 0x20)" (( "(") (binary_expression "pcVar22 + 0x20" (identifier "pcVar22") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "pcStack_1ac")) (; ";")) (} "}"))))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

void function_1(type_1 *pParse,type_2 *var_2,int dest,int var_4)

{
  type_3 *puVar1;
  type_1 *pPVar2;
  type_4 var_10;
  type_1 *xJump;
  type_5 var_23;
  type_1 *dest_00;
  type_5 *var_31;
  int var_33;
  char *var_44;
  type_6 uVar7;
  type_7 var_8;
  int var_34;
  type_1 *pPVar11;
  type_2 *pExpr_00;
  char *var_43;
  int var_42;
  type_1 *unaff_s0;
  type_1 *var_3;
  int *piVar13;
  type_1 *unaff_s1;
  type_1 *pPVar14;
  type_1 *unaff_s2;
  type_2 *pEVar15;
  int var_35;
  type_1 *var_22;
  type_1 *var_1;
  type_1 *unaff_s5;
  type_5 *var_32;
  type_1 *var_36;
  type_1 *var_16;
  type_1 *pParse_00;
  type_1 *unaff_s7;
  type_8 *var_28;
  type_3 *var_21;
  int var_11;
  type_1 *var_29;
  type_9 *var_27;
  type_1 *pPStack_1ac;
  int var_38;
  int var_39;
  type_2 EStack_15c;
  type_10 *psStack_124;
  char *pcStack_120;
  type_8 *pVStack_11c;
  type_2 *pEStack_118;
  type_1 *pPStack_114;
  type_6 uStack_110;
  type_6 uStack_10c;
  int iStack_108;
  int iStack_104;
  int iStack_100;
  int iStack_fc;
  int iStack_f8;
  int iStack_f4;
  int iStack_f0;
  int var_40;
  type_1 *pPStack_e8;
  type_1 *pPStack_e4;
  type_2 *pEStack_e0;
  type_1 *pPStack_dc;
  type_1 *pPStack_d8;
  type_1 *pPStack_d4;
  type_1 *pPStack_d0;
  type_1 *pPStack_cc;
  int var_24;
  type_1 *var_25;
  int var_26;
  type_1 *pPStack_84;
  type_1 *pPStack_80;
  type_1 *pPStack_7c;
  type_3 *puStack_78;
  type_1 *pPStack_74;
  type_1 *pPStack_70;
  type_1 *pPStack_6c;
  type_1 *pPStack_68;
  type_9 *pcStack_64;
  int var_18;
  int var_19;
  type_11 **var_20;
  
  puVar1 = PTR___stack_chk_guard_00190e24;
  var_1 = (type_1 *)pParse->pVdbe;
  var_18 = 0;
  var_19 = 0;
  var_20 = *(type_11 ***)PTR___stack_chk_guard_00190e24;
  pPVar11 = pParse;
  var_3 = (type_1 *)var_2;
  xJump = (type_1 *)dest;
  pPStack_80 = unaff_s1;
  pPStack_7c = unaff_s2;
  pPStack_70 = unaff_s5;
  if ((var_1 != (type_1 *)0x0) && (pPStack_80 = (type_1 *)var_2, var_2 != (type_2 *)0x0)) {
    var_3 = (type_1 *)(type_5)var_2->op;
    var_16 = (type_1 *)var_4;
    unaff_s7 = var_3;
    if (var_3 == (type_1 *)&DAT_00000031) {
      unaff_s0 = (type_1 *)(pParse->nLabel + -1);
      pParse->nLabel = (int)unaff_s0;
      pPVar11 = unaff_s0;
      if (var_4 != 0) {
        pPVar11 = (type_1 *)dest;
      }
      var_5(pParse,var_2,(int)unaff_s0,(int)pPVar11);
      xJump = (type_1 *)0x0;
      var_3 = (type_1 *)dest;
      (*(type_9 *)(var_6 + 0x10fc))(var_1,0xb);
LAB_000e6494:
      pPVar11 = var_1;
      (*(type_9 *)(var_6 + 0xd78))(var_1,unaff_s0);
      var_4 = (int)var_3;
      goto joined_r0x000e64ac;
    }
    unaff_s0 = var_3;
    if ((type_1 *)&DAT_00000031 < var_3) {
      if (var_3 < (type_1 *)0x3a) {
        if ((type_1 *)&DAT_00000033 < var_3) goto LAB_000e6334;
        xJump = (type_1 *)var_7(pParse,var_2->pLeft,&var_18);
        goto LAB_000e6238;
      }
      if (var_3 != (type_1 *)0x9c) {
        if (var_3 != (type_1 *)0xa3) goto LAB_000e63e8;
        var_8 = var_2->op2 ^ 0x9c;
        if ((var_8 == 0) == (*(char *)((var_2->pRight->u).iValue + 4) == '\0')) {
          var_3 = (type_1 *)&DAT_00000010;
          if (var_8 != 0) {
            var_3 = (type_1 *)0x0;
          }
          var_9(pParse,var_2->pLeft,dest,(int)var_3);
          var_4 = (int)var_3;
        }
        else {
          var_3 = (type_1 *)&DAT_00000010;
          if (var_8 != 0) {
            var_3 = (type_1 *)0x0;
          }
          function_1(pParse,var_2->pLeft,dest,(int)var_3);
          var_4 = (int)var_3;
        }
        goto joined_r0x000e64ac;
      }
LAB_000e631c:
      pPVar2 = (type_1 *)0x34;
      if (var_3 == (type_1 *)&DAT_0000002d) {
        pPVar2 = (type_1 *)0x35;
      }
      var_16 = (type_1 *)0x80;
      var_3 = pPVar2;
LAB_000e6334:
      pEVar15 = var_2->pLeft;
      var_10 = pEVar15->op;
      if (var_10 == 0xa4) {
        var_10 = pEVar15->op2;
      }
      unaff_s7 = var_3;
      if (var_10 == 0xa5) {
        var_11 = ((pEVar15->x).pList)->nExpr;
LAB_000e63d8:
        unaff_s0 = (type_1 *)var_12;
        if (1 < var_11) goto LAB_000e63e8;
      }
      else if (var_10 == '\x7f') {
        var_11 = ((pEVar15->x).pSelect)->pEList->nExpr;
        goto LAB_000e63d8;
      }
      unaff_s0 = (type_1 *)(var_12 + -0x57b8);
      var_1 = (type_1 *)var_7(pParse,pEVar15,&var_18);
      var_7(pParse,var_2->pRight,&var_19);
      xJump = (type_1 *)var_2->pRight;
      var_4 = (int)var_3;
      (*(type_9 *)(var_13 + -0x59dc))(pParse,var_2->pLeft);
    }
    else {
      if (var_3 == (type_1 *)0x2c) {
        unaff_s0 = (type_1 *)(pParse->nLabel + -1);
        pParse->nLabel = (int)unaff_s0;
        var_9(pParse,var_2->pLeft,(int)unaff_s0,var_4 ^ 0x10);
        var_3 = (type_1 *)var_4;
        function_1(pParse,var_2->pRight,dest,var_4);
        goto LAB_000e6494;
      }
      if (var_3 < (type_1 *)0x2d) {
        if (var_3 == (type_1 *)&DAT_00000013) {
          var_3 = (type_1 *)var_4;
          var_9(pParse,var_2->pLeft,dest,var_4);
          var_4 = (int)var_3;
          goto joined_r0x000e64ac;
        }
        unaff_s0 = (type_1 *)var_14;
        if (var_3 == (type_1 *)&DAT_0000002b) {
          unaff_s0 = (type_1 *)(var_14 + 0x60cc);
          function_1(pParse,var_2->pLeft,dest,var_4);
          var_3 = (type_1 *)var_4;
          function_1(pParse,var_2->pRight,dest,var_4);
          var_4 = (int)var_3;
          goto joined_r0x000e64ac;
        }
LAB_000e63e8:
        var_11 = (*(type_9 *)(var_15 + -0x4d8c))(var_2);
        if (var_11 == 0) {
          pPVar11 = (type_1 *)var_2;
          var_11 = (*(type_9 *)(var_15 + -0x4e14))();
          if (var_11 != 0) goto joined_r0x000e64ac;
          xJump = (type_1 *)var_7(pParse,var_2,&var_18);
          var_3 = (type_1 *)0x12;
          var_4 = (int)(type_5)(var_16 != (type_1 *)0x0);
        }
        else {
          xJump = (type_1 *)0x0;
          var_3 = (type_1 *)&DAT_0000000b;
          var_4 = (int)var_16;
        }
LAB_000e6238:
        pPVar11 = var_1;
        pPVar2 = (type_1 *)dest;
        (*(type_9 *)(var_6 + 0x10fc))(var_1,var_3);
        var_16 = (type_1 *)var_4;
        var_4 = (int)pPVar2;
      }
      else {
        if (var_3 == (type_1 *)&DAT_0000002d) goto LAB_000e631c;
        if (var_3 != (type_1 *)0x30) goto LAB_000e63e8;
        xJump = (type_1 *)&var_2->x;
        var_3 = (type_1 *)dest;
        var_17(pParse,(type_2 *)&var_2->pLeft,(int)xJump,
                        (type_12 *)dest,
                        (int)(var_14 + 0x60cc),(type_2 *)var_4);
        var_4 = (int)var_3;
      }
    }
joined_r0x000e64ac:
    if (var_18 != 0) {
      pPVar11 = pParse;
      (*(type_9 *)(var_15 + -0x4854))();
    }
    var_3 = (type_1 *)var_19;
    pPStack_7c = pParse;
    pPStack_70 = (type_1 *)dest;
    if (var_19 != 0) {
      pPVar11 = pParse;
      (*(type_9 *)(var_15 + -0x4854))();
    }
  }
  if (var_20 == *(type_11 ***)puVar1) {
    return;
  }
  var_27 = var_9;
  var_21 = PTR___stack_chk_fail_00190df8;
  (*(type_9 *)PTR___stack_chk_fail_00190df8)();
  puStack_78 = puVar1;
  pEVar15 = *(type_2 **)(var_21 + 0xaa8d4);
  var_22 = (type_1 *)pPVar11->pVdbe;
  var_24 = 0;
  var_25 = (type_1 *)0x0;
  var_26._0_1_ = pEVar15->op;
  var_26._1_1_ = pEVar15->affinity;
  var_26._2_2_ = *(type_13 *)&pEVar15->field_0x2;
  pPVar2 = pPVar11;
  var_29 = var_3;
  dest_00 = xJump;
  pPStack_e8 = unaff_s0;
  pPVar14 = pPStack_80;
  var_36 = pPStack_70;
  pParse_00 = var_16;
  pPStack_84 = unaff_s0;
  pPStack_74 = var_1;
  pPStack_6c = var_16;
  pPStack_68 = unaff_s7;
  pcStack_64 = var_27;
  if ((var_22 == (type_1 *)0x0) || (pPStack_e8 = var_3, var_3 == (type_1 *)0x0))
  goto LAB_000e667c;
  var_23 = (type_5)*(type_7 *)&var_3->db;
  pParse_00 = (type_1 *)(var_23 ^ 1);
  if (var_23 == 0x31) {
    if ((type_1 *)var_4 == (type_1 *)0x0) {
      var_1 = (type_1 *)(pPVar11->nLabel + -1);
      pPVar11->nLabel = (int)var_1;
      var_5(pPVar11,(type_2 *)var_3,(int)xJump,(int)var_1);
      var_3 = var_1;
LAB_000e6640:
      pPVar2 = var_22;
      (*(type_9 *)(*(int *)(var_21 + 0xaa670) + 0xd78))(var_22,var_1);
    }
    else {
      var_5(pPVar11,(type_2 *)var_3,(int)xJump,(int)xJump);
    }
    goto LAB_000e6654;
  }
  if (var_23 < 0x32) {
    if (var_23 == 0x2c) {
      var_22 = (type_1 *)(*(int *)(var_21 + 0xaa680) + 0x6550);
      var_9(pPVar11,(type_2 *)var_3->rc,(int)xJump,var_4);
      var_9(pPVar11,*(type_2 **)&var_3->colNamesSet,(int)xJump,var_4);
    }
    else if (var_23 < 0x2d) {
      if (var_23 != 0x13) {
        if (var_23 == 0x2b) {
          var_1 = (type_1 *)(pPVar11->nLabel + -1);
          pPVar11->nLabel = (int)var_1;
          function_1(pPVar11,(type_2 *)var_3->rc,(int)var_1,var_4 ^ 0x10);
          var_9(pPVar11,*(type_2 **)&var_3->colNamesSet,(int)xJump,var_4);
          pParse_00 = var_1;
          goto LAB_000e6640;
        }
LAB_000e6898:
        var_11 = *(int *)(var_21 + 0xaa654);
        var_1 = pParse_00;
        goto LAB_000e689c;
      }
      function_1(pPVar11,(type_2 *)var_3->rc,(int)xJump,var_4);
    }
    else {
      if (var_23 == 0x2d) goto LAB_000e67d0;
      if (var_23 != 0x30) goto LAB_000e6898;
      dest_00 = (type_1 *)&var_3->isMultiWrite;
      var_17(pPVar11,(type_2 *)&var_3->rc,(int)dest_00,
                      (type_12 *)xJump,
                      *(int *)(var_21 + 0xaa680) + 0x6550,(type_2 *)var_4);
    }
LAB_000e6654:
    var_11 = *(int *)(var_21 + 0xaa654);
    if (var_24 != 0) {
LAB_000e6660:
      pPVar2 = pPVar11;
      (*(type_9 *)(var_11 + -0x4854))();
    }
  }
  else {
    var_1 = pParse_00;
    if (var_23 < 0x3a) {
      if (0x33 < var_23) {
LAB_000e67e4:
        pExpr_00 = (type_2 *)var_3->rc;
        var_10 = pExpr_00->op;
        if (var_10 == 0xa4) {
          var_10 = pExpr_00->op2;
        }
        if (var_10 == 0xa5) {
          var_11 = ((pExpr_00->x).pList)->nExpr;
LAB_000e688c:
          if (1 < var_11) goto LAB_000e6898;
        }
        else if (var_10 == '\x7f') {
          var_11 = ((pExpr_00->x).pSelect)->pEList->nExpr;
          goto LAB_000e688c;
        }
        var_22 = (type_1 *)(*(int *)(var_21 + 0xaa708) + -0x57b8);
        unaff_s7 = (type_1 *)var_7(pPVar11,pExpr_00,&var_24);
        var_7(pPVar11,*(type_2 **)&var_3->colNamesSet,(int *)&var_25);
        dest_00 = *(type_1 **)&var_3->colNamesSet;
        (*(type_9 *)(*(int *)(var_21 + 0xaa674) + -0x59dc))(pPVar11,var_3->rc,dest_00,pParse_00);
        if (var_24 != 0) {
          var_11 = *(int *)(var_21 + 0xaa654);
          goto LAB_000e6660;
        }
        goto LAB_000e6670;
      }
      dest_00 = (type_1 *)var_7(pPVar11,(type_2 *)var_3->rc,&var_24);
    }
    else {
      if (var_23 == 0x9c) {
LAB_000e67d0:
        pParse_00 = (type_1 *)0x34;
        if (var_23 != 0x2d) {
          pParse_00 = (type_1 *)0x35;
        }
        var_4 = 0x80;
        goto LAB_000e67e4;
      }
      var_11 = *(int *)(var_21 + 0xaa654);
      if (var_23 == 0xa3) {
        var_8 = *(type_7 *)&var_3->nTab ^ 0x9c;
        if ((var_8 == 0) == (*(char *)(*(int *)(*(int *)&var_3->colNamesSet + 8) + 4) == '\0')) {
          var_11 = 0x10;
          if (var_8 == 0) {
            var_11 = 0;
          }
          function_1(pPVar11,(type_2 *)var_3->rc,(int)xJump,var_11);
        }
        else {
          var_11 = 0x10;
          if (var_8 == 0) {
            var_11 = 0;
          }
          var_9(pPVar11,(type_2 *)var_3->rc,(int)xJump,var_11);
        }
        goto LAB_000e6654;
      }
LAB_000e689c:
      var_11 = (*(type_9 *)(var_11 + -0x4e14))(var_3);
      if (var_11 == 0) {
        pPVar2 = var_3;
        var_11 = (*(type_9 *)(*(int *)(var_21 + 0xaa654) + -0x4d8c))();
        pParse_00 = var_1;
        if (var_11 != 0) goto LAB_000e6654;
        var_4 = (int)((type_1 *)var_4 != (type_1 *)0x0);
        dest_00 = (type_1 *)var_7(pPVar11,(type_2 *)var_3,&var_24);
        pParse_00 = (type_1 *)&DAT_00000014;
      }
      else {
        dest_00 = (type_1 *)0x0;
        pParse_00 = (type_1 *)&DAT_0000000b;
      }
    }
    pPVar2 = var_22;
    (*(type_9 *)(*(int *)(var_21 + 0xaa670) + 0x10fc))(var_22,pParse_00,dest_00,xJump);
    pParse_00 = var_1;
    if (var_24 != 0) {
      var_11 = *(int *)(var_21 + 0xaa654);
      goto LAB_000e6660;
    }
  }
LAB_000e6670:
  var_29 = var_25;
  pPStack_e8 = var_3;
  pPVar14 = pPVar11;
  var_1 = (type_1 *)var_4;
  var_36 = xJump;
  if (var_25 != (type_1 *)0x0) {
    pPVar2 = pPVar11;
    (*(type_9 *)(*(int *)(var_21 + 0xaa654) + -0x4854))();
  }
LAB_000e667c:
  var_11._0_1_ = pEVar15->op;
  var_11._1_1_ = pEVar15->affinity;
  var_11._2_2_ = *(type_13 *)&pEVar15->field_0x2;
  if (var_26 == var_11) {
    return;
  }
  var_27 = *(type_9 **)(var_21 + 0xaa8a8);
  (*var_27)();
  piVar13 = *(int **)(var_27 + 0xaa46c);
  var_28 = pPVar2->pVdbe;
  var_38 = 0;
  var_39 = 0;
  var_40 = *piVar13;
  pPStack_e4 = pPVar14;
  pEStack_e0 = pEVar15;
  pPStack_dc = var_22;
  pPStack_d8 = var_1;
  pPStack_d4 = var_36;
  pPStack_d0 = pParse_00;
  pPStack_cc = unaff_s7;
  if (var_28 != (type_8 *)0x0) {
    if (var_29 == (type_1 *)0x0) {
      (*(type_9 *)(*(int *)(var_27 + 0xaa208) + 0x10fc))(var_28,0x49,0,dest_00,0);
      pPVar14 = dest_00;
    }
    else {
      var_8 = *(type_7 *)&var_29->db;
      var_23 = (type_5)((int)&((type_2 *)(type_5)var_8)[-1].iAgg + 1U) & 0xff;
      if (var_23 < 0x97) {
                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        (*(var_27 + *(int *)(*(int *)(var_27 + 0xa9fa4) + 0x3d88 + var_23 * 4) + 0xb1f68))();
        return;
      }
      var_31 = *(type_5 **)&var_29->isMultiWrite;
      var_1 = (type_1 *)(pPVar2->nLabel + -1);
      var_23 = *var_31;
      pPVar2->nLabel = (int)var_1;
      var_11 = var_29->rc;
      if (var_11 == 0) {
        var_29 = (type_1 *)0x0;
        pEVar15 = (type_2 *)(type_5)var_8;
      }
      else {
        (*(type_9 *)(*(int *)(var_27 + 0xaa1f0) + -0x69a4))(&EStack_15c);
        EStack_15c.iTable = var_30(pPVar2,&EStack_15c,&var_38);
        EStack_15c.op2 = EStack_15c.op;
        var_29 = (type_1 *)&psStack_124;
        EStack_15c.flags = EStack_15c.flags & 0xffffefff;
        EStack_15c.op = 0xa4;
        pcStack_120 = (char *)0x0;
        pVStack_11c = (type_8 *)0x0;
        pPStack_114 = (type_1 *)0x0;
        uStack_110._0_1_ = '\0';
        uStack_110._1_1_ = '\0';
        uStack_110._2_1_ = '\0';
        uStack_110._3_1_ = '\0';
        uStack_10c._0_1_ = '\0';
        uStack_10c._1_1_ = '\0';
        uStack_10c._2_2_ = 0;
        iStack_108 = 0;
        iStack_104 = 0;
        iStack_100 = 0;
        iStack_fc = 0;
        iStack_f8 = 0;
        iStack_f4 = 0;
        iStack_f0 = 0;
        psStack_124 = (type_10 *)0x35000000;
        pEVar15 = &EStack_15c;
        pEStack_118 = &EStack_15c;
      }
      var_38 = 0;
      if ((int)(var_23 - 1) < 1) {
        var_36 = *(type_1 **)(var_27 + 0xaa208);
        pPStack_1ac = (type_1 *)&var_36[0xc].sLastToken;
      }
      else {
        var_35 = *(int *)(var_27 + 0xaa208);
        var_34 = *(int *)(var_27 + 0xaa2a0);
        pPStack_1ac = (type_1 *)(*(int *)(var_27 + 0xaa208) + 0xd78);
        var_22 = (type_1 *)(var_31 + (var_23 - 2 >> 1) * 10 + 0xb);
        var_33 = *(int *)(var_27 + 0xaa218);
        var_32 = var_31 + 1;
        do {
          pPVar11 = (type_1 *)*var_32;
          if (var_11 == 0) {
            var_29 = (type_1 *)*var_32;
            pPVar11 = pPStack_114;
          }
          pPStack_114 = pPVar11;
          var_36 = (type_1 *)(var_32 + 10);
          pEVar15 = (type_2 *)(pPVar2->nLabel + -1);
          pPVar2->nLabel = (int)pEVar15;
          (*(type_9 *)(var_33 + 0x6550))(pPVar2,var_29,pEVar15,0x10);
          (*(type_9 *)(var_34 + -0x7cdc))(pPVar2,var_32[5],dest_00);
          (*(type_9 *)(var_35 + 0x10fc))(var_28,0xb,0,var_1,0);
          (*(type_9 *)pPStack_1ac)(var_28,pEVar15);
          var_32 = (type_5 *)var_36;
        } while (var_22 != var_36);
      }
      if ((var_23 & 1) == 0) {
        (*(type_9 *)(*(int *)(var_27 + 0xaa208) + 0x10fc))(var_28,0x49,0,dest_00,0);
      }
      else {
        var_37(pPVar2,(type_2 *)var_31[(var_23 - 1) * 5 + 1],(int)dest_00);
      }
      (*(type_9 *)pPStack_1ac)(var_28,var_1);
      if (var_38 != 0) {
        (*(type_9 *)(*(int *)(var_27 + 0xaa1ec) + -0x4854))(pPVar2);
        pPStack_1ac = dest_00;
      }
      pPVar14 = dest_00;
      pParse_00 = pPVar2;
      if (var_39 != 0) {
        (*(type_9 *)(*(int *)(var_27 + 0xaa1ec) + -0x4854))(pPVar2);
        pPStack_1ac = dest_00;
      }
    }
  }
  do {
    if (var_40 == *piVar13) {
      return;
    }
    var_11 = var_40;
    var_8 = (**(type_9 **)(var_27 + 0xaa440))();
    *(type_7 *)(var_11 + 0x28) = var_8 & 0xc0;
    var_41(pParse_00,(type_14 *)var_1,(int)pPStack_1ac,0,'\x03');
    if ((int)var_22 < 2) {
      if (var_22 == (type_1 *)0x1) {
LAB_000e80f8:
        var_44 = var_1->zErrMsg;
        goto LAB_000e8104;
      }
    }
    else {
      if (((type_5)var_29->zErrMsg & 0x80) == 0) goto LAB_000e80f8;
      var_44 = *(char **)&var_1->disableLookaside;
LAB_000e8104:
      var_42 = (*(type_9 *)(*(int *)(var_27 + 0xaa1f0) + 0xb8c))(pEVar15,var_42,var_22,var_44);
    }
    var_23 = *(type_5 *)(var_42 + 4);
    if ((var_23 & 0x20) == 0) {
      pEVar15 = (type_2 *)(*(int *)(var_27 + 0xaa208) + 0x10fc);
    }
    else {
      if (var_43 == (char *)0x0) {
        var_43 = (pEVar15->u).zToken;
      }
      pEVar15 = (type_2 *)(*(int *)(var_27 + 0xaa208) + 0x10fc);
      uVar7 = (*(type_9 *)pEVar15)(var_28,0x52,0,0,0);
      (*(type_9 *)(*(int *)(var_27 + 0xaa1ec) + 0x7a3c))(var_28,uVar7,var_43,0xfffffffe);
      var_23 = *(type_5 *)(var_42 + 4);
    }
    if ((var_23 & 0x8000) == 0) {
      uVar7 = 0x3f;
      if (pParse_00->iSelfTab != 0) {
        uVar7 = 0x3e;
      }
      uVar7 = (*(type_9 *)pEVar15)(var_28,uVar7,var_36,pPStack_1ac,pPVar14);
      (*(type_9 *)(*(int *)(var_27 + 0xaa1ec) + 0x7a3c))(var_28,uVar7,var_42,0xfffffff8);
      if (0 < var_28->nOp) {
        var_28->aOp[var_28->nOp + -1].p5 = (type_15)var_22 & 0xff;
      }
    }
    else {
      var_44 = var_1->zErrMsg;
      if (*var_44 == -0x62) {
        (*(type_9 *)pEVar15)(var_28,0x59,*(type_6 *)(var_44 + 0x1c),
                           *(type_6 *)(var_44 + 0x20),pPVar14);
      }
      else {
        (*(type_9 *)pEVar15)(var_28,0x49,0,pPVar14,0);
      }
    }
    if ((var_22 != (type_1 *)0x0) && (var_36 == (type_1 *)0x0)) {
      if (var_22 == (type_1 *)0x1) {
        (*(type_9 *)(*(int *)(var_27 + 0xaa1ec) + -0x47a4))(pParse_00,pPStack_1ac);
      }
      else if (pParse_00->nRangeReg < (int)var_22) {
        pParse_00->nRangeReg = (int)var_22;
        pParse_00->iRangeReg = (int)pPStack_1ac;
      }
    }
  } while( true );
}


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

code * MASKED(code *param_1,code *param_2,code *param_3,code *param_4)

{
  code cVar1;
  undefined *puVar2;
  code *pcVar3;
  char cVar10;
  code *pcVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  char *pcVar8;
  undefined4 uVar9;
  byte bVar11;
  int iVar12;
  uint uVar13;
  int in_t0;
  int in_t1;
  code *unaff_s0;
  code *pcVar14;
  int *piVar15;
  code *unaff_s1;
  code *pcVar16;
  code *unaff_s2;
  code *pcVar17;
  int iVar18;
  code *pcVar19;
  code *pcVar20;
  code *unaff_s5;
  code *pcVar21;
  code *unaff_s6;
  code *pcVar22;
  code *unaff_s7;
  undefined *puVar23;
  int iVar24;
  code *pcVar25;
  code *pcVar26;
  code *pcVar27;
  code *pcStack_1ac;
  int iStack_16c;
  int iStack_168;
  undefined1 auStack_15c [4];
  uint uStack_158;
  undefined4 uStack_140;
  undefined1 uStack_134;
  undefined4 uStack_124;
  undefined4 uStack_120;
  undefined4 uStack_11c;
  code *pcStack_118;
  code *pcStack_114;
  undefined4 uStack_110;
  undefined4 uStack_10c;
  undefined4 uStack_108;
  undefined4 uStack_104;
  undefined4 uStack_100;
  undefined4 uStack_fc;
  undefined4 uStack_f8;
  undefined4 uStack_f4;
  undefined4 uStack_f0;
  int iStack_ec;
  code *pcStack_e8;
  code *pcStack_e4;
  code *pcStack_e0;
  code *pcStack_dc;
  code *pcStack_d8;
  code *pcStack_d4;
  code *pcStack_d0;
  code *pcStack_cc;
  int iStack_94;
  code *pcStack_90;
  code *pcStack_8c;
  code *pcStack_84;
  code *pcStack_80;
  code *pcStack_7c;
  undefined *puStack_78;
  code *pcStack_74;
  code *pcStack_70;
  code *pcStack_6c;
  code *pcStack_68;
  code *pcStack_64;
  code *local_50;
  code *local_4c;
  code *local_48;
  code *local_44;
  int local_34;
  code *local_30;
  code *local_2c;
  
  puVar2 = PTR___stack_chk_guard_00190e24;
  pcVar20 = *(code **)(param_1 + 8);
  local_34 = 0;
  local_30 = (code *)0x0;
  local_2c = *(code **)PTR___stack_chk_guard_00190e24;
  pcVar25 = param_1;
  pcVar4 = param_3;
  pcStack_80 = unaff_s1;
  pcStack_7c = unaff_s2;
  pcStack_70 = unaff_s5;
  if ((pcVar20 != (code *)0x0) && (pcStack_80 = param_2, param_2 != (code *)0x0)) {
    pcVar14 = (code *)(uint)(byte)*param_2;
    unaff_s6 = param_4;
    unaff_s7 = pcVar14;
    if (pcVar14 == (code *)&DAT_00000031) {
      unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);
      *(code **)(param_1 + 0x38) = unaff_s0;
      pcVar25 = unaff_s0;
      if (param_4 != (code *)0x0) {
        pcVar25 = param_3;
      }
      FUN_000e55ac(param_1,param_2,unaff_s0,pcVar25);
      pcVar4 = (code *)0x0;
      local_50 = (code *)0x0;
      pcVar3 = param_3;
      (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,0xb);
LAB_000e6494:
      pcVar25 = pcVar20;
      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pcVar20,unaff_s0);
      goto joined_r0x000e64ac;
    }
    unaff_s0 = pcVar14;
    if (&DAT_00000031 < pcVar14) {
      if (pcVar14 < (code *)0x3a) {
        if (&DAT_00000033 < pcVar14) goto LAB_000e6334;
        pcVar4 = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0xc),&local_34);
        local_50 = (code *)0x0;
        goto LAB_000e6238;
      }
      if (pcVar14 != (code *)0x9c) {
        if (pcVar14 != (code *)0xa3) goto LAB_000e63e8;
        bVar11 = (byte)param_2[0x28] ^ 0x9c;
        if ((bVar11 == 0) == (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {
          pcVar3 = (code *)&DAT_00000010;
          if (bVar11 != 0) {
            pcVar3 = (code *)0x0;
          }
          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));
        }
        else {
          pcVar3 = (code *)&DAT_00000010;
          if (bVar11 != 0) {
            pcVar3 = (code *)0x0;
          }
          MASKED();
        }
        goto joined_r0x000e64ac;
      }
LAB_000e631c:
      pcVar3 = (code *)0x34;
      if (pcVar14 == (code *)0x2d) {
        pcVar3 = (code *)0x35;
      }
      unaff_s6 = (code *)0x80;
      pcVar14 = pcVar3;
LAB_000e6334:
      pcVar8 = *(char **)(param_2 + 0xc);
      cVar10 = *pcVar8;
      if (cVar10 == -0x5c) {
        cVar10 = pcVar8[0x28];
      }
      unaff_s7 = pcVar14;
      if (cVar10 == -0x5b) {
        iVar24 = **(int **)(pcVar8 + 0x14);
LAB_000e63d8:
        unaff_s0 = (code *)PTR_LAB_00190c58;
        if (1 < iVar24) goto LAB_000e63e8;
      }
      else if (cVar10 == '\x7f') {
        iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);
        goto LAB_000e63d8;
      }
      unaff_s0 = (code *)(PTR_LAB_00190c58 + -0x57b8);
      pcVar20 = (code *)FUN_000ea848(param_1,pcVar8,&local_34);
      local_4c = (code *)FUN_000ea848(param_1,*(uint *)(param_2 + 0x10),&local_30);
      pcVar4 = *(code **)(param_2 + 0x10);
      pcVar3 = pcVar14;
      local_50 = pcVar20;
      local_48 = param_3;
      local_44 = unaff_s6;
      (*(code *)(PTR_LAB_00190bc4 + -0x59dc))(param_1,*(uint *)(param_2 + 0xc));
    }
    else {
      pcVar3 = param_4;
      if (pcVar14 == (code *)0x2c) {
        unaff_s0 = (code *)(*(uint *)(param_1 + 0x38) - 1);
        *(code **)(param_1 + 0x38) = unaff_s0;
        FUN_000e6550(param_1,*(uint *)(param_2 + 0xc),unaff_s0,(uint)param_4 ^ 0x10);
        MASKED(param_1,*(uint *)(param_2 + 0x10));
        goto LAB_000e6494;
      }
      if (pcVar14 < (code *)0x2d) {
        if (pcVar14 == (code *)&DAT_00000013) {
          FUN_000e6550(param_1,*(uint *)(param_2 + 0xc));
          goto joined_r0x000e64ac;
        }
        unaff_s0 = (code *)PTR_LAB_00190bd0;
        if (pcVar14 == (code *)0x2b) {
          unaff_s0 = (code *)(PTR_LAB_00190bd0 + 0x60cc);
          MASKED(param_1,*(uint *)(param_2 + 0xc));
          MASKED(param_1,*(uint *)(param_2 + 0x10));
          goto joined_r0x000e64ac;
        }
LAB_000e63e8:
        iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4d8c))(param_2);
        if (iVar24 == 0) {
          pcVar25 = param_2;
          iVar24 = (*(code *)(PTR_LAB_00190ba4 + -0x4e14))();
          pcVar3 = param_4;
          if (iVar24 != 0) goto joined_r0x000e64ac;
          pcVar4 = (code *)FUN_000ea848(param_1,param_2,&local_34);
          pcVar14 = (code *)0x12;
          param_4 = (code *)(uint)(unaff_s6 != (code *)0x0);
          local_50 = (code *)(uint)(unaff_s6 != (code *)0x0);
        }
        else {
          pcVar4 = (code *)0x0;
          local_50 = (code *)0x0;
          pcVar14 = (code *)&DAT_0000000b;
          param_4 = unaff_s6;
        }
LAB_000e6238:
        pcVar25 = pcVar20;
        pcVar3 = param_3;
        (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(pcVar20,pcVar14);
        unaff_s6 = param_4;
      }
      else {
        if (pcVar14 == (code *)0x2d) goto LAB_000e631c;
        if (pcVar14 != (code *)0x30) goto LAB_000e63e8;
        pcVar4 = param_2 + 0x14;
        local_50 = (code *)(PTR_LAB_00190bd0 + 0x60cc);
        pcVar3 = param_3;
        local_4c = param_4;
        FUN_000ec9a4(param_1,param_2 + 0xc);
      }
    }
joined_r0x000e64ac:
    param_4 = pcVar3;
    if (local_34 != 0) {
      pcVar25 = param_1;
      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();
    }
    param_2 = local_30;
    pcStack_7c = param_1;
    pcStack_70 = param_3;
    if (local_30 != (code *)0x0) {
      pcVar25 = param_1;
      (*(code *)(PTR_LAB_00190ba4 + -0x4854))();
    }
  }
  pcVar14 = *(code **)puVar2;
  if (local_2c == pcVar14) {
    return pcVar14;
  }
  pcVar27 = FUN_000e6550;
  puVar23 = PTR___stack_chk_fail_00190df8;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  puStack_78 = puVar2;
  pcVar17 = *(code **)(puVar23 + 0xaa8d4);
  pcVar19 = *(code **)(pcVar25 + 8);
  iStack_94 = 0;
  pcStack_90 = (code *)0x0;
  pcStack_8c = *(code **)pcVar17;
  pcVar3 = pcVar25;
  pcVar26 = param_2;
  pcVar14 = pcVar4;
  pcStack_e8 = unaff_s0;
  pcVar16 = pcStack_80;
  pcVar21 = pcStack_70;
  pcVar22 = unaff_s6;
  pcStack_84 = unaff_s0;
  pcStack_74 = pcVar20;
  pcStack_6c = unaff_s6;
  pcStack_68 = unaff_s7;
  pcStack_64 = pcVar27;
  if ((pcVar19 == (code *)0x0) || (pcStack_e8 = param_2, param_2 == (code *)0x0)) goto LAB_000e667c;
  uVar5 = (uint)(byte)*param_2;
  pcVar22 = (code *)(uVar5 ^ 1);
  if (uVar5 == 0x31) {
    if (param_4 == (code *)0x0) {
      pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);
      *(code **)(pcVar25 + 0x38) = pcVar20;
      FUN_000e55ac();
      param_2 = pcVar20;
LAB_000e6640:
      pcVar3 = pcVar19;
      (*(code *)(*(int *)(puVar23 + 0xaa670) + 0xd78))(pcVar19,pcVar20);
    }
    else {
      FUN_000e55ac();
    }
    goto LAB_000e6654;
  }
  if (uVar5 < 0x32) {
    if (uVar5 == 0x2c) {
      pcVar19 = (code *)(*(int *)(puVar23 + 0xaa680) + 0x6550);
      FUN_000e6550();
      FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);
    }
    else if (uVar5 < 0x2d) {
      if (uVar5 != 0x13) {
        if (uVar5 == 0x2b) {
          pcVar20 = (code *)(*(uint *)(pcVar25 + 0x38) - 1);
          *(code **)(pcVar25 + 0x38) = pcVar20;
          MASKED();
          FUN_000e6550(pcVar25,*(uint *)(param_2 + 0x10),pcVar4,param_4);
          pcVar22 = pcVar20;
          goto LAB_000e6640;
        }
LAB_000e6898:
        iVar24 = *(int *)(puVar23 + 0xaa654);
        pcVar20 = pcVar22;
        goto LAB_000e689c;
      }
      MASKED();
    }
    else {
      if (uVar5 == 0x2d) goto LAB_000e67d0;
      if (uVar5 != 0x30) goto LAB_000e6898;
      pcVar14 = param_2 + 0x14;
      FUN_000ec9a4();
    }
LAB_000e6654:
    iVar24 = *(int *)(puVar23 + 0xaa654);
    if (iStack_94 != 0) {
LAB_000e6660:
      pcVar3 = pcVar25;
      (*(code *)(iVar24 + -0x4854))();
    }
  }
  else {
    pcVar20 = pcVar22;
    if (uVar5 < 0x3a) {
      if (0x33 < uVar5) {
LAB_000e67e4:
        pcVar8 = *(char **)(param_2 + 0xc);
        cVar10 = *pcVar8;
        if (cVar10 == -0x5c) {
          cVar10 = pcVar8[0x28];
        }
        if (cVar10 == -0x5b) {
          iVar24 = **(int **)(pcVar8 + 0x14);
LAB_000e688c:
          if (1 < iVar24) goto LAB_000e6898;
        }
        else if (cVar10 == '\x7f') {
          iVar24 = *(int *)**(undefined4 **)(pcVar8 + 0x14);
          goto LAB_000e688c;
        }
        pcVar19 = (code *)(*(int *)(puVar23 + 0xaa708) + -0x57b8);
        unaff_s7 = (code *)FUN_000ea848(pcVar25,pcVar8,&iStack_94);
        FUN_000ea848(pcVar25,*(uint *)(param_2 + 0x10),&pcStack_90);
        pcVar14 = *(code **)(param_2 + 0x10);
        (*(code *)(*(int *)(puVar23 + 0xaa674) + -0x59dc))
                  (pcVar25,*(uint *)(param_2 + 0xc),pcVar14,pcVar22);
        if (iStack_94 != 0) {
          iVar24 = *(int *)(puVar23 + 0xaa654);
          goto LAB_000e6660;
        }
        goto LAB_000e6670;
      }
      pcVar14 = (code *)FUN_000ea848();
    }
    else {
      if (uVar5 == 0x9c) {
LAB_000e67d0:
        pcVar22 = (code *)0x34;
        if (uVar5 != 0x2d) {
          pcVar22 = (code *)0x35;
        }
        param_4 = (code *)0x80;
        goto LAB_000e67e4;
      }
      iVar24 = *(int *)(puVar23 + 0xaa654);
      if (uVar5 == 0xa3) {
        if ((param_2[0x28] == (code)0x9c) ==
            (*(char *)(*(int *)(*(uint *)(param_2 + 0x10) + 8) + 4) == '\0')) {
          MASKED();
        }
        else {
          FUN_000e6550();
        }
        goto LAB_000e6654;
      }
LAB_000e689c:
      iVar24 = (*(code *)(iVar24 + -0x4e14))(param_2);
      if (iVar24 == 0) {
        pcVar3 = param_2;
        iVar24 = (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4d8c))();
        pcVar22 = pcVar20;
        if (iVar24 != 0) goto LAB_000e6654;
        param_4 = (code *)(uint)(param_4 != (code *)0x0);
        pcVar14 = (code *)FUN_000ea848(pcVar25,param_2,&iStack_94);
        pcVar22 = (code *)&DAT_00000014;
      }
      else {
        pcVar14 = (code *)0x0;
        pcVar22 = (code *)&DAT_0000000b;
      }
    }
    pcVar3 = pcVar19;
    (*(code *)(*(int *)(puVar23 + 0xaa670) + 0x10fc))(pcVar19,pcVar22,pcVar14,pcVar4);
    pcVar22 = pcVar20;
    if (iStack_94 != 0) {
      iVar24 = *(int *)(puVar23 + 0xaa654);
      goto LAB_000e6660;
    }
  }
LAB_000e6670:
  pcVar26 = pcStack_90;
  pcStack_e8 = param_2;
  pcVar16 = pcVar25;
  pcVar20 = param_4;
  pcVar21 = pcVar4;
  if (pcStack_90 != (code *)0x0) {
    pcVar3 = pcVar25;
    (*(code *)(*(int *)(puVar23 + 0xaa654) + -0x4854))();
  }
LAB_000e667c:
  if (pcStack_8c == *(code **)pcVar17) {
    return *(code **)pcVar17;
  }
  pcVar25 = *(code **)(puVar23 + 0xaa8a8);
  (*pcVar25)();
  piVar15 = *(int **)(pcVar25 + 0xaa46c);
  uVar5 = *(uint *)(pcVar3 + 8);
  iStack_16c = 0;
  iStack_168 = 0;
  iStack_ec = *piVar15;
  pcStack_e4 = pcVar16;
  pcStack_e0 = pcVar17;
  pcStack_dc = pcVar19;
  pcStack_d8 = pcVar20;
  pcStack_d4 = pcVar21;
  pcStack_d0 = pcVar22;
  pcStack_cc = unaff_s7;
  if (uVar5 == 0) {
    pcVar14 = (code *)0x0;
  }
  else if (pcVar26 == (code *)0x0) {
    (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);
    pcVar16 = pcVar14;
  }
  else {
    cVar1 = *pcVar26;
    uVar6 = (uint)((code *)(uint)(byte)cVar1 + -0x13) & 0xff;
    if (uVar6 < 0x97) {
                    /* WARNING: Could not recover jumptable at 0x000e6a4c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      pcVar20 = (code *)(*(pcVar25 +
                          *(int *)(*(int *)(pcVar25 + 0xa9fa4) + 0x3d88 + uVar6 * 4) + 0xb1f68))();
      return pcVar20;
    }
    puVar7 = *(uint **)(pcVar26 + 0x14);
    pcVar20 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);
    uVar6 = *puVar7;
    *(code **)(pcVar3 + 0x38) = pcVar20;
    uVar13 = *(uint *)(pcVar26 + 0xc);
    if (uVar13 == 0) {
      pcVar26 = (code *)0x0;
      pcVar17 = (code *)(uint)(byte)cVar1;
    }
    else {
      (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + -0x69a4))(auStack_15c);
      uStack_140 = FUN_000eaaf0(pcVar3,auStack_15c,&iStack_16c);
      uStack_134 = auStack_15c[0];
      pcVar26 = (code *)&uStack_124;
      uStack_158 = uStack_158 & 0xffffefff;
      auStack_15c[0] = (code)0xa4;
      uStack_120 = 0;
      uStack_11c = 0;
      pcStack_114 = (code *)0x0;
      uStack_110 = 0;
      uStack_10c = 0;
      uStack_108 = 0;
      uStack_104 = 0;
      uStack_100 = 0;
      uStack_fc = 0;
      uStack_f8 = 0;
      uStack_f4 = 0;
      uStack_f0 = 0;
      uStack_124 = 0x35000000;
      pcVar17 = (code *)auStack_15c;
      pcStack_118 = (code *)auStack_15c;
    }
    iStack_16c = 0;
    if ((int)(uVar6 - 1) < 1) {
      pcVar21 = *(code **)(pcVar25 + 0xaa208);
      pcStack_1ac = pcVar21 + 0xd78;
    }
    else {
      iVar18 = *(int *)(pcVar25 + 0xaa208);
      iVar12 = *(int *)(pcVar25 + 0xaa2a0);
      pcStack_1ac = (code *)(*(int *)(pcVar25 + 0xaa208) + 0xd78);
      pcVar19 = (code *)(puVar7 + (uVar6 - 2 >> 1) * 10 + 0xb);
      iVar24 = *(int *)(pcVar25 + 0xaa218);
      pcVar4 = (code *)(puVar7 + 1);
      do {
        pcVar16 = *(code **)pcVar4;
        if (uVar13 == 0) {
          pcVar26 = *(code **)pcVar4;
          pcVar16 = pcStack_114;
        }
        pcStack_114 = pcVar16;
        pcVar21 = pcVar4 + 0x28;
        pcVar17 = (code *)(*(uint *)(pcVar3 + 0x38) - 1);
        *(code **)(pcVar3 + 0x38) = pcVar17;
        (*(code *)(iVar24 + 0x6550))(pcVar3,pcVar26,pcVar17,0x10);
        (*(code *)(iVar12 + -0x7cdc))(pcVar3,*(uint *)(pcVar4 + 0x14),pcVar14);
        (*(code *)(iVar18 + 0x10fc))(uVar5,0xb,0,pcVar20,0);
        (*pcStack_1ac)(uVar5,pcVar17);
        pcVar4 = pcVar21;
      } while (pcVar19 != pcVar21);
    }
    if ((uVar6 & 1) == 0) {
      (*(code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc))(uVar5,0x49,0,pcVar14,0);
    }
    else {
      FUN_000e8324(pcVar3,puVar7[(uVar6 - 1) * 5 + 1],pcVar14);
    }
    (*pcStack_1ac)(uVar5,pcVar20);
    if (iStack_16c != 0) {
      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);
      pcStack_1ac = pcVar14;
    }
    pcVar16 = pcVar14;
    pcVar22 = pcVar3;
    if (iStack_168 != 0) {
      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x4854))(pcVar3);
      pcStack_1ac = pcVar14;
    }
  }
  do {
    if (iStack_ec == *piVar15) {
      return pcVar14;
    }
    iVar24 = iStack_ec;
    bVar11 = (**(code **)(pcVar25 + 0xaa440))();
    *(byte *)(iVar24 + 0x28) = bVar11 & 0xc0;
    FUN_000eac50(pcVar22,pcVar20,pcStack_1ac,0,3);
    if ((int)pcVar19 < 2) {
      if (pcVar19 == (code *)0x1) {
LAB_000e80f8:
        uVar6 = *(uint *)(pcVar20 + 4);
        goto LAB_000e8104;
      }
    }
    else {
      if ((*(uint *)(pcVar26 + 4) & 0x80) == 0) goto LAB_000e80f8;
      uVar6 = *(uint *)(pcVar20 + 0x18);
LAB_000e8104:
      in_t1 = (*(code *)(*(int *)(pcVar25 + 0xaa1f0) + 0xb8c))(pcVar17,in_t1,pcVar19,uVar6);
    }
    uVar6 = *(uint *)(in_t1 + 4);
    if ((uVar6 & 0x20) == 0) {
      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);
    }
    else {
      if (in_t0 == 0) {
        in_t0 = *(int *)(pcVar17 + 8);
      }
      pcVar17 = (code *)(*(int *)(pcVar25 + 0xaa208) + 0x10fc);
      uVar9 = (*pcVar17)(uVar5,0x52,0,0,0);
      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t0,0xfffffffe);
      uVar6 = *(uint *)(in_t1 + 4);
    }
    if ((uVar6 & 0x8000) == 0) {
      uVar9 = 0x3f;
      if (*(uint *)(pcVar22 + 0x34) != 0) {
        uVar9 = 0x3e;
      }
      uVar9 = (*pcVar17)(uVar5,uVar9,pcVar21,pcStack_1ac,pcVar16);
      (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + 0x7a3c))(uVar5,uVar9,in_t1,0xfffffff8);
      if (0 < *(int *)(uVar5 + 0x6c)) {
        *(ushort *)(*(int *)(uVar5 + 0x6c) * 0x18 + *(int *)(uVar5 + 0x68) + -0x16) =
             (ushort)pcVar19 & 0xff;
      }
    }
    else {
      pcVar8 = *(char **)(pcVar20 + 4);
      if (*pcVar8 == -0x62) {
        (*pcVar17)(uVar5,0x59,*(undefined4 *)(pcVar8 + 0x1c),*(undefined4 *)(pcVar8 + 0x20),pcVar16)
        ;
      }
      else {
        (*pcVar17)(uVar5,0x49,0,pcVar16,0);
      }
    }
    pcVar14 = pcVar16;
    if ((pcVar19 != (code *)0x0) && (pcVar21 == (code *)0x0)) {
      if (pcVar19 == (code *)0x1) {
        (*(code *)(*(int *)(pcVar25 + 0xaa1ec) + -0x47a4))(pcVar22,pcStack_1ac);
      }
      else if ((int)*(uint *)(pcVar22 + 0x1c) < (int)pcVar19) {
        *(code **)(pcVar22 + 0x1c) = pcVar19;
        *(code **)(pcVar22 + 0x20) = pcStack_1ac;
      }
    }
  } while( true );
}

