
int sqlite3ResolveExprNames(NameContext *pNC,Expr *pExpr)

{
  anon_union_4_16_1c331a60_for_u aVar1;
  int iVar2;
  uint uVar3;
  Parse *pPVar4;
  int *zFormat;
  Parse *pPVar5;
  uint in_a2;
  Expr *in_a3;
  Expr *unaff_s0;
  Expr *unaff_s1;
  Expr *pEVar6;
  int *unaff_s2;
  undefined *puVar7;
  AggInfo_col *pAVar8;
  undefined4 unaff_s4;
  Walker *unaff_s5;
  int *unaff_s6;
  int iVar9;
  undefined *puVar10;
  AggInfo *pAVar11;
  Expr *pEVar12;
  code *pcVar13;
  NameContext NStack_150;
  undefined4 auStack_130 [4];
  sqlite3 *psStack_120;
  Parse *pPStack_118;
  undefined4 uStack_100;
  Parse *pPStack_dc;
  Expr *pEStack_d8;
  Expr *pEStack_d4;
  int *piStack_d0;
  undefined *puStack_cc;
  undefined4 uStack_c8;
  Walker *pWStack_c4;
  int *piStack_c0;
  code *pcStack_bc;
  Expr *pEStack_a8;
  int *piStack_9c;
  Walker WStack_98;
  Parse *pPStack_7c;
  Expr *pEStack_78;
  Expr *pEStack_74;
  int *piStack_70;
  undefined *puStack_6c;
  Walker w;
  
  puVar7 = PTR___stack_chk_guard_000f5568;
  aVar1 = *(anon_union_4_16_1c331a60_for_u *)PTR___stack_chk_guard_000f5568;
  if (pExpr == (Expr *)0x0) {
    uVar3 = 0;
    zFormat = (int *)0x0;
  }
  else {
    w.pParse = pNC->pParse;
    in_a3 = (Expr *)pExpr->nHeight;
    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52fc + 0xc94);
    unaff_s2 = (int *)pNC->ncFlags;
    iVar2 = (w.pParse)->nHeight;
    in_a2 = (w.pParse)->db->aLimit[3];
    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52fc + -0x5390);
    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;
    pNC->ncFlags = (uint)unaff_s2 & 0xffff6fef;
    (w.pParse)->nHeight = (int)(&in_a3->op + iVar2);
    unaff_s0 = (Expr *)pNC;
    unaff_s1 = pExpr;
    w.u.pNC = pNC;
    if ((int)in_a2 < (int)(&in_a3->op + iVar2)) {
      zFormat = (int *)(PTR_LAB_000f52cc + 0x7630);
      sqlite3ErrorMsg(w.pParse,(char *)zFormat);
      uVar3 = 1;
    }
    else {
      walkExpr(&w,pExpr);
      zFormat = (int *)pNC->ncFlags;
      in_a3 = (Expr *)pExpr->nHeight;
      uVar3 = pExpr->flags;
      in_a2 = pNC->nErr;
      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);
      (w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;
      pExpr->flags = uVar3 | (uint)zFormat & 0x8010;
      pNC->ncFlags = (int)unaff_s2;
      if ((int)in_a2 < 1) {
        uVar3 = (uint)(0 < (w.pParse)->nErr);
      }
      else {
        uVar3 = 1;
      }
    }
  }
  if (aVar1.pNC == *(NameContext **)puVar7) {
    return uVar3;
  }
  puVar10 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  pEVar12 = (Expr *)(puVar10 + 0xb2774);
  piStack_9c = *(int **)(puVar10 + 0xaaa3c);
  puStack_6c = puVar7;
  pPStack_7c = (Parse *)*piStack_9c;
  pEStack_a8 = pEVar12;
  pEStack_78 = unaff_s0;
  pEStack_74 = unaff_s1;
  piStack_70 = unaff_s2;
  if (zFormat == (int *)0x0) {
    iVar2 = 0;
    pPVar5 = (Parse *)0x0;
  }
  else {
    pPVar5 = (aVar1.pNC)->pParse;
    WStack_98.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar10 + 0xaa7d0) + 0xc94)
    ;
    iVar2 = *zFormat;
    unaff_s4 = 0xffff6fef;
    WStack_98.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;
    uVar3 = (aVar1.pNC)->ncFlags & 0xffff6fef;
    pEVar6 = (Expr *)((aVar1.pNC)->ncFlags & 0x9010);
    WStack_98.xSelectCallback =
         (_func_int_Walker_ptr_Select_ptr *)(*(int *)(puVar10 + 0xaa7d0) + -0x5390);
    (aVar1.pNC)->ncFlags = uVar3;
    WStack_98.pParse = pPVar5;
    WStack_98.u = aVar1;
    if (0 < iVar2) {
      unaff_s6 = zFormat + 1;
      iVar9 = 0;
      unaff_s5 = &WStack_98;
      puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88);
      do {
        unaff_s1 = pEVar6;
        unaff_s0 = (Expr *)*unaff_s6;
        if (unaff_s0 != (Expr *)0x0) {
          in_a2 = (WStack_98.pParse)->db->aLimit[3];
          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;
          (WStack_98.pParse)->nHeight = iVar2;
          if ((int)in_a2 < iVar2) {
            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);
            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);
            iVar2 = 2;
            unaff_s2 = zFormat;
            pEVar12 = pEStack_a8;
            goto LAB_0004ac98;
          }
          walkExpr(unaff_s5,unaff_s0);
          in_a2 = unaff_s0->nHeight;
          uVar3 = (aVar1.pNC)->ncFlags;
          pPVar5 = (Parse *)(uVar3 & 0x9010);
          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;
          if (pPVar5 != (Parse *)0x0) {
            in_a2 = uVar3 & 0x8010;
            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);
            unaff_s0->flags = unaff_s0->flags | in_a2;
            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;
          }
          iVar2 = 2;
          unaff_s2 = zFormat;
          pEVar12 = pEStack_a8;
          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))
          goto LAB_0004ac98;
          iVar2 = *zFormat;
        }
        iVar9 = iVar9 + 1;
        unaff_s6 = unaff_s6 + 4;
        pEVar6 = unaff_s1;
      } while (iVar9 < iVar2);
      uVar3 = (aVar1.pNC)->ncFlags;
    }
    unaff_s1 = (Expr *)((uint)pEVar6 | uVar3);
    (aVar1.pNC)->ncFlags = (int)unaff_s1;
    iVar2 = 0;
    unaff_s2 = zFormat;
  }
LAB_0004ac98:
  if (pPStack_7c == (Parse *)*piStack_9c) {
    return iVar2;
  }
  pAVar11 = pEVar12[-0x26a].pAggInfo;
  pcVar13 = sqlite3ResolveSelfReference;
  pPVar4 = pPStack_7c;
  (*(code *)pAVar11)();
  pEVar12 = pEStack_a8;
  pAVar8 = pAVar11[0x30b8].aCol;
  NStack_150.pParse = (Parse *)0x0;
  NStack_150.pSrcList = (SrcList *)0x0;
  NStack_150.uNC.pEList = (ExprList *)0x0;
  NStack_150.pNext = (NameContext *)0x0;
  NStack_150.nRef = 0;
  NStack_150.nErr = 0;
  NStack_150.ncFlags = 0;
  NStack_150.pWinSelect = (Select *)0x0;
  pPStack_dc = (Parse *)pAVar8->pTab;
  pEStack_d8 = unaff_s0;
  pEStack_d4 = unaff_s1;
  piStack_d0 = unaff_s2;
  puStack_cc = puVar7;
  uStack_c8 = unaff_s4;
  pWStack_c4 = unaff_s5;
  piStack_c0 = unaff_s6;
  pcStack_bc = pcVar13;
  NStack_150.pSrcList = (SrcList *)(*(code *)pAVar11[0x30b3].aCol)(auStack_130,0,0x50);
  if (pPVar5 != (Parse *)0x0) {
    psStack_120 = pPVar5->db;
    auStack_130[0] = 1;
    uStack_100 = 0xffffffff;
    pPStack_118 = pPVar5;
    if ((Schema *)(pPVar5->constraintName).z != pPVar4->db->aDb[1].pSchema) {
      in_a2 = in_a2 | 0x40000;
    }
  }
  NStack_150.ncFlags = in_a2 | 0x10000;
  NStack_150.pParse = pPVar4;
  iVar2 = sqlite3ResolveExprNames(&NStack_150,in_a3);
  if ((iVar2 == 0) && (pEVar12 != (Expr *)0x0)) {
    iVar2 = sqlite3ResolveExprListNames(&NStack_150,(ExprList *)pEVar12);
    in_a3 = pEVar12;
  }
  if (pPStack_dc == (Parse *)pAVar8->pTab) {
    return iVar2;
  }
  pcVar13 = (code *)pAVar11[0x30b7].nFunc;
  pPVar5 = pPStack_dc;
  (*pcVar13)();
  exprSetHeight(in_a3);
  uVar3 = (uint)(pPVar5->db->aLimit[3] < in_a3->nHeight);
  if (uVar3 == 0) {
    return 0;
  }
  sqlite3ErrorMsg(pPVar5,(char *)(*(int *)(pcVar13 + 0xaa45c) + 0x7630));
  return uVar3;
}



uint FUN_0004a9d4(int *param_1,uint param_2,uint param_3,undefined *param_4)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  undefined4 *puVar4;
  uint uVar5;
  int *piVar6;
  int *piVar7;
  undefined *puVar8;
  int *unaff_s0;
  uint unaff_s1;
  int *unaff_s2;
  undefined *puVar9;
  int *piVar10;
  undefined4 unaff_s4;
  int **unaff_s5;
  int *unaff_s6;
  int iVar11;
  code *pcVar12;
  undefined *puVar13;
  code *pcVar14;
  int *piStack_150;
  undefined4 uStack_14c;
  undefined4 uStack_148;
  undefined4 uStack_144;
  undefined4 uStack_140;
  undefined4 uStack_13c;
  uint uStack_138;
  undefined4 uStack_134;
  undefined4 auStack_130 [4];
  int iStack_120;
  int *piStack_118;
  undefined4 uStack_100;
  int *piStack_dc;
  int *piStack_d8;
  uint uStack_d4;
  int *piStack_d0;
  undefined *puStack_cc;
  undefined4 uStack_c8;
  int **ppiStack_c4;
  int *piStack_c0;
  code *pcStack_bc;
  undefined *puStack_a8;
  undefined4 *puStack_9c;
  int *piStack_98;
  int iStack_94;
  int iStack_90;
  undefined4 uStack_8c;
  undefined4 *puStack_80;
  int *piStack_7c;
  int *piStack_78;
  uint uStack_74;
  int *piStack_70;
  undefined *puStack_6c;
  int *local_38;
  undefined *local_34;
  undefined *local_30;
  undefined4 local_2c;
  int *local_20;
  undefined4 *local_1c;
  
  puVar9 = PTR___stack_chk_guard_000f5568;
  local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;
  if (param_2 == 0) {
    uVar2 = 0;
    piVar6 = (int *)0x0;
  }
  else {
    local_38 = (int *)*param_1;
    param_4 = *(undefined **)(param_2 + 0x18);
    local_34 = PTR_LAB_000f52fc + 0xc94;
    unaff_s2 = (int *)param_1[6];
    iVar1 = local_38[0x35];
    param_3 = *(uint *)(*local_38 + 0x78);
    local_30 = PTR_LAB_000f52fc + -0x5390;
    local_2c = 0;
    param_1[6] = (uint)unaff_s2 & 0xffff6fef;
    local_38[0x35] = (int)(param_4 + iVar1);
    unaff_s0 = param_1;
    unaff_s1 = param_2;
    local_20 = param_1;
    if ((int)param_3 < (int)(param_4 + iVar1)) {
      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);
      FUN_00049e28();
      uVar2 = 1;
    }
    else {
      FUN_0002f078(&local_38);
      piVar6 = (int *)param_1[6];
      param_4 = *(undefined **)(param_2 + 0x18);
      uVar2 = *(uint *)(param_2 + 4);
      param_3 = param_1[5];
      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);
      local_38[0x35] = local_38[0x35] - (int)param_4;
      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;
      param_1[6] = (int)unaff_s2;
      if ((int)param_3 < 1) {
        uVar2 = (uint)(0 < local_38[9]);
      }
      else {
        uVar2 = 1;
      }
    }
  }
  if (local_1c == *(undefined4 **)puVar9) {
    return uVar2;
  }
  puVar4 = local_1c;
  puVar8 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  puVar13 = puVar8 + 0xb2774;
  puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);
  puStack_6c = puVar9;
  piStack_7c = (int *)*puStack_9c;
  puStack_a8 = puVar13;
  piStack_78 = unaff_s0;
  uStack_74 = unaff_s1;
  piStack_70 = unaff_s2;
  if (piVar6 == (int *)0x0) {
    uVar2 = 0;
    piVar7 = (int *)0x0;
  }
  else {
    piVar7 = (int *)*puVar4;
    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;
    iVar1 = *piVar6;
    unaff_s4 = 0xffff6fef;
    uStack_8c = 0;
    uVar5 = puVar4[6] & 0xffff6fef;
    uVar2 = puVar4[6] & 0x9010;
    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;
    puVar4[6] = uVar5;
    piStack_98 = piVar7;
    puStack_80 = puVar4;
    if (0 < iVar1) {
      unaff_s6 = piVar6 + 1;
      iVar11 = 0;
      unaff_s5 = &piStack_98;
      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);
      do {
        unaff_s1 = uVar2;
        unaff_s0 = (int *)*unaff_s6;
        if (unaff_s0 != (int *)0x0) {
          iVar3 = unaff_s0[6];
          iVar1 = piStack_98[0x35];
          param_3 = *(uint *)(*piStack_98 + 0x78);
          piStack_98[0x35] = iVar1 + iVar3;
          if ((int)param_3 < iVar1 + iVar3) {
            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);
            FUN_00049e28();
            uVar2 = 2;
            unaff_s2 = piVar6;
            puVar13 = puStack_a8;
            goto LAB_0004ac98;
          }
          FUN_0002f078(unaff_s5,unaff_s0);
          param_3 = unaff_s0[6];
          uVar2 = puVar4[6];
          piVar7 = (int *)(uVar2 & 0x9010);
          piStack_98[0x35] = piStack_98[0x35] - param_3;
          if (piVar7 != (int *)0x0) {
            param_3 = uVar2 & 0x8010;
            unaff_s1 = unaff_s1 | (uint)piVar7;
            unaff_s0[1] = unaff_s0[1] | param_3;
            puVar4[6] = uVar2 & 0xffff6fef;
          }
          uVar2 = 2;
          unaff_s2 = piVar6;
          puVar13 = puStack_a8;
          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;
          iVar1 = *piVar6;
        }
        iVar11 = iVar11 + 1;
        unaff_s6 = unaff_s6 + 4;
        uVar2 = unaff_s1;
      } while (iVar11 < iVar1);
      uVar5 = puVar4[6];
    }
    unaff_s1 = uVar2 | uVar5;
    puVar4[6] = unaff_s1;
    uVar2 = 0;
    unaff_s2 = piVar6;
  }
LAB_0004ac98:
  if (piStack_7c == (int *)*puStack_9c) {
    return uVar2;
  }
  pcVar12 = *(code **)(puVar13 + -0x7d60);
  pcVar14 = FUN_0004ad0c;
  piVar6 = piStack_7c;
  (*pcVar12)();
  puVar8 = puStack_a8;
  piVar10 = *(int **)(pcVar12 + 0xaa85c);
  piStack_150 = (int *)0x0;
  uStack_14c = 0;
  uStack_148 = 0;
  uStack_144 = 0;
  uStack_140 = 0;
  uStack_13c = 0;
  uStack_138 = 0;
  uStack_134 = 0;
  piStack_dc = (int *)*piVar10;
  piStack_d8 = unaff_s0;
  uStack_d4 = unaff_s1;
  piStack_d0 = unaff_s2;
  puStack_cc = puVar9;
  uStack_c8 = unaff_s4;
  ppiStack_c4 = unaff_s5;
  piStack_c0 = unaff_s6;
  pcStack_bc = pcVar14;
  uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);
  if (piVar7 != (int *)0x0) {
    iStack_120 = *piVar7;
    auStack_130[0] = 1;
    uStack_100 = 0xffffffff;
    piStack_118 = piVar7;
    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {
      param_3 = param_3 | 0x40000;
    }
  }
  uStack_138 = param_3 | 0x10000;
  piStack_150 = piVar6;
  uVar2 = FUN_0004a9d4(&piStack_150);
  if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {
    uVar2 = FUN_0004ab2c(&piStack_150);
    param_4 = puVar8;
  }
  if (piStack_dc == (int *)*piVar10) {
    return uVar2;
  }
  pcVar12 = *(code **)(pcVar12 + 0xaa834);
  piVar6 = piStack_dc;
  (*pcVar12)();
  FUN_0002fde8(param_4);
  if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {
    return 0;
  }
  uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);
  return uVar2;
}


lui gp,0xb
addiu gp,gp,0x28cc
addu gp,gp,t9
addiu sp,sp,-0x50
sw s3,0x48(sp)
lw s3,-0x7d38(gp)
sw gp,0x10(sp)
sw ra,0x4c(sp)
sw s2,0x44(sp)
sw s1,0x40(sp)
sw s0,0x3c(sp)
lw v0,0x0(s3)
sw v0,0x34(sp)
beq a1,zero,0x0004ab0c
_lw v1,-0x7fa4(gp)
or s0,a0,zero
lw a0,0x0(a0)
lw a3,0x18(a1)
addiu v1,v1,0xc94
lw s2,0x18(s0)
lw a2,0x0(a0)
sw v1,0x1c(sp)
lw v1,-0x7fa4(gp)
lw v0,0xd4(a0)
lw a2,0x78(a2)
addiu v1,v1,-0x5390
sw a0,0x18(sp)
addu v0,v0,a3
sw zero,0x24(sp)
sw v1,0x20(sp)
lui v1,0xffff
sw s0,0x30(sp)
addiu v1,v1,0x6fef
and v1,s2,v1
sw v1,0x18(s0)
sw v0,0xd4(a0)
slt v0,a2,v0
bne v0,zero,0x0004aaec
_or s1,a1,zero
lw t9,-0x7fb4(gp)
addiu a0,sp,0x18
addiu t9,t9,-0xf88
bal 0x0002f078
_andi s2,s2,0x9010
lw a0,0x18(sp)
lw a1,0x18(s0)
lw a3,0x18(s1)
lw v0,0x4(s1)
lw v1,0xd4(a0)
andi t0,a1,0x8010
lw a2,0x14(s0)
or s2,s2,a1
or v0,v0,t0
lw gp,0x10(sp)
subu v1,v1,a3
sw v1,0xd4(a0)
sw v0,0x4(s1)
blez a2,0x0004ab14
_sw s2,0x18(s0)
li v0,0x1
lw a0,0x34(sp)
lw v1,0x0(s3)
bne a0,v1,0x0004ab20
_lw ra,0x4c(sp)
lw s3,0x48(sp)
lw s2,0x44(sp)
lw s1,0x40(sp)
lw s0,0x3c(sp)
jr ra
_addiu sp,sp,0x50
lw a1,-0x7fd4(gp)
lw t9,-0x7f94(gp)
addiu t9,t9,-0x61d8
bal 0x00049e28
_addiu a1,a1,0x7630
li v0,0x1
b 0x0004aac4
_lw gp,0x10(sp)
b 0x0004aac4
_or v0,zero,zero
lw v0,0x24(a0)
b 0x0004aac4
_slt v0,zero,v0
lw t9,-0x7d60(gp)
jalr t9
_nop
(translation_unit "uint FUN_0004a9d4(int *param_1,uint param_2,uint param_3,undefined *param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined *puVar8;\n  int *unaff_s0;\n  uint unaff_s1;\n  int *unaff_s2;\n  undefined *puVar9;\n  int *piVar10;\n  undefined4 unaff_s4;\n  int **unaff_s5;\n  int *unaff_s6;\n  int iVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int *piStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  undefined4 uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  undefined4 auStack_130 [4];\n  int iStack_120;\n  int *piStack_118;\n  undefined4 uStack_100;\n  int *piStack_dc;\n  int *piStack_d8;\n  uint uStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  int **ppiStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  undefined4 *puStack_9c;\n  int *piStack_98;\n  int iStack_94;\n  int iStack_90;\n  undefined4 uStack_8c;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  uint uStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  int *local_38;\n  undefined *local_34;\n  undefined *local_30;\n  undefined4 local_2c;\n  int *local_20;\n  undefined4 *local_1c;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }\n  if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }\n  puVar4 = local_1c;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar13 = puVar8 + 0xb2774;\n  puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);\n  puStack_6c = puVar9;\n  piStack_7c = (int *)*puStack_9c;\n  puStack_a8 = puVar13;\n  piStack_78 = unaff_s0;\n  uStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }\nLAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(puVar13 + -0x7d60);\n  pcVar14 = FUN_0004ad0c;\n  piVar6 = piStack_7c;\n  (*pcVar12)();\n  puVar8 = puStack_a8;\n  piVar10 = *(int **)(pcVar12 + 0xaa85c);\n  piStack_150 = (int *)0x0;\n  uStack_14c = 0;\n  uStack_148 = 0;\n  uStack_144 = 0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  piStack_dc = (int *)*piVar10;\n  piStack_d8 = unaff_s0;\n  uStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar9;\n  uStack_c8 = unaff_s4;\n  ppiStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar14;\n  uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);\n  if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }\n  uStack_138 = param_3 | 0x10000;\n  piStack_150 = piVar6;\n  uVar2 = FUN_0004a9d4(&piStack_150);\n  if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }\n  if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0xaa834);\n  piVar6 = piStack_dc;\n  (*pcVar12)();\n  FUN_0002fde8(param_4);\n  if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }\n  uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);\n  return uVar2;\n}\n\n" (function_definition "uint FUN_0004a9d4(int *param_1,uint param_2,uint param_3,undefined *param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined *puVar8;\n  int *unaff_s0;\n  uint unaff_s1;\n  int *unaff_s2;\n  undefined *puVar9;\n  int *piVar10;\n  undefined4 unaff_s4;\n  int **unaff_s5;\n  int *unaff_s6;\n  int iVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int *piStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  undefined4 uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  undefined4 auStack_130 [4];\n  int iStack_120;\n  int *piStack_118;\n  undefined4 uStack_100;\n  int *piStack_dc;\n  int *piStack_d8;\n  uint uStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  int **ppiStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  undefined4 *puStack_9c;\n  int *piStack_98;\n  int iStack_94;\n  int iStack_90;\n  undefined4 uStack_8c;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  uint uStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  int *local_38;\n  undefined *local_34;\n  undefined *local_30;\n  undefined4 local_2c;\n  int *local_20;\n  undefined4 *local_1c;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }\n  if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }\n  puVar4 = local_1c;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar13 = puVar8 + 0xb2774;\n  puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);\n  puStack_6c = puVar9;\n  piStack_7c = (int *)*puStack_9c;\n  puStack_a8 = puVar13;\n  piStack_78 = unaff_s0;\n  uStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }\nLAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(puVar13 + -0x7d60);\n  pcVar14 = FUN_0004ad0c;\n  piVar6 = piStack_7c;\n  (*pcVar12)();\n  puVar8 = puStack_a8;\n  piVar10 = *(int **)(pcVar12 + 0xaa85c);\n  piStack_150 = (int *)0x0;\n  uStack_14c = 0;\n  uStack_148 = 0;\n  uStack_144 = 0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  piStack_dc = (int *)*piVar10;\n  piStack_d8 = unaff_s0;\n  uStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar9;\n  uStack_c8 = unaff_s4;\n  ppiStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar14;\n  uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);\n  if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }\n  uStack_138 = param_3 | 0x10000;\n  piStack_150 = piVar6;\n  uVar2 = FUN_0004a9d4(&piStack_150);\n  if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }\n  if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0xaa834);\n  piVar6 = piStack_dc;\n  (*pcVar12)();\n  FUN_0002fde8(param_4);\n  if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }\n  uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);\n  return uVar2;\n}" type_identifier (function_declarator "FUN_0004a9d4(int *param_1,uint param_2,uint param_3,undefined *param_4)" identifier (parameter_list "(int *param_1,uint param_2,uint param_3,undefined *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined *puVar8;\n  int *unaff_s0;\n  uint unaff_s1;\n  int *unaff_s2;\n  undefined *puVar9;\n  int *piVar10;\n  undefined4 unaff_s4;\n  int **unaff_s5;\n  int *unaff_s6;\n  int iVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int *piStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  undefined4 uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  undefined4 auStack_130 [4];\n  int iStack_120;\n  int *piStack_118;\n  undefined4 uStack_100;\n  int *piStack_dc;\n  int *piStack_d8;\n  uint uStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  int **ppiStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  undefined4 *puStack_9c;\n  int *piStack_98;\n  int iStack_94;\n  int iStack_90;\n  undefined4 uStack_8c;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  uint uStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  int *local_38;\n  undefined *local_34;\n  undefined *local_30;\n  undefined4 local_2c;\n  int *local_20;\n  undefined4 *local_1c;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }\n  if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }\n  puVar4 = local_1c;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar13 = puVar8 + 0xb2774;\n  puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);\n  puStack_6c = puVar9;\n  piStack_7c = (int *)*puStack_9c;\n  puStack_a8 = puVar13;\n  piStack_78 = unaff_s0;\n  uStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }\nLAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(puVar13 + -0x7d60);\n  pcVar14 = FUN_0004ad0c;\n  piVar6 = piStack_7c;\n  (*pcVar12)();\n  puVar8 = puStack_a8;\n  piVar10 = *(int **)(pcVar12 + 0xaa85c);\n  piStack_150 = (int *)0x0;\n  uStack_14c = 0;\n  uStack_148 = 0;\n  uStack_144 = 0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  piStack_dc = (int *)*piVar10;\n  piStack_d8 = unaff_s0;\n  uStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar9;\n  uStack_c8 = unaff_s4;\n  ppiStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar14;\n  uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);\n  if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }\n  uStack_138 = param_3 | 0x10000;\n  piStack_150 = piVar6;\n  uVar2 = FUN_0004a9d4(&piStack_150);\n  if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }\n  if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0xaa834);\n  piVar6 = piStack_dc;\n  (*pcVar12)();\n  FUN_0002fde8(param_4);\n  if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }\n  uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);\n  return uVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *unaff_s0;" primitive_type (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined4 unaff_s4;" type_identifier identifier ;) (declaration "int **unaff_s5;" primitive_type (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier)) ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int *piStack_150;" primitive_type (pointer_declarator "*piStack_150" * identifier) ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "undefined4 uStack_148;" type_identifier identifier ;) (declaration "undefined4 uStack_144;" type_identifier identifier ;) (declaration "undefined4 uStack_140;" type_identifier identifier ;) (declaration "undefined4 uStack_13c;" type_identifier identifier ;) (declaration "uint uStack_138;" type_identifier identifier ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "undefined4 auStack_130 [4];" type_identifier (array_declarator "auStack_130 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_120;" primitive_type identifier ;) (declaration "int *piStack_118;" primitive_type (pointer_declarator "*piStack_118" * identifier) ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "int *piStack_dc;" primitive_type (pointer_declarator "*piStack_dc" * identifier) ;) (declaration "int *piStack_d8;" primitive_type (pointer_declarator "*piStack_d8" * identifier) ;) (declaration "uint uStack_d4;" type_identifier identifier ;) (declaration "int *piStack_d0;" primitive_type (pointer_declarator "*piStack_d0" * identifier) ;) (declaration "undefined *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (declaration "undefined4 uStack_c8;" type_identifier identifier ;) (declaration "int **ppiStack_c4;" primitive_type (pointer_declarator "**ppiStack_c4" * (pointer_declarator "*ppiStack_c4" * identifier)) ;) (declaration "int *piStack_c0;" primitive_type (pointer_declarator "*piStack_c0" * identifier) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "undefined *puStack_a8;" type_identifier (pointer_declarator "*puStack_a8" * identifier) ;) (declaration "undefined4 *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "int *piStack_98;" primitive_type (pointer_declarator "*piStack_98" * identifier) ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "undefined4 uStack_8c;" type_identifier identifier ;) (declaration "undefined4 *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "int *piStack_7c;" primitive_type (pointer_declarator "*piStack_7c" * identifier) ;) (declaration "int *piStack_78;" primitive_type (pointer_declarator "*piStack_78" * identifier) ;) (declaration "uint uStack_74;" type_identifier identifier ;) (declaration "int *piStack_70;" primitive_type (pointer_declarator "*piStack_70" * identifier) ;) (declaration "undefined *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "undefined4 *local_1c;" type_identifier (pointer_declarator "*local_1c" * identifier) ;) (expression_statement "puVar9 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar9 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000f5568" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000f5568" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }" else (compound_statement "{\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }" { (expression_statement "local_38 = (int *)*param_1;" (assignment_expression "local_38 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "param_4 = *(undefined **)(param_2 + 0x18);" (assignment_expression "param_4 = *(undefined **)(param_2 + 0x18)" identifier = (pointer_expression "*(undefined **)(param_2 + 0x18)" * (cast_expression "(undefined **)(param_2 + 0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_34 = PTR_LAB_000f52fc + 0xc94;" (assignment_expression "local_34 = PTR_LAB_000f52fc + 0xc94" identifier = (binary_expression "PTR_LAB_000f52fc + 0xc94" identifier + number_literal)) ;) (expression_statement "unaff_s2 = (int *)param_1[6];" (assignment_expression "unaff_s2 = (int *)param_1[6]" identifier = (cast_expression "(int *)param_1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (expression_statement "iVar1 = local_38[0x35];" (assignment_expression "iVar1 = local_38[0x35]" identifier = (subscript_expression "local_38[0x35]" identifier [ number_literal ])) ;) (expression_statement "param_3 = *(uint *)(*local_38 + 0x78);" (assignment_expression "param_3 = *(uint *)(*local_38 + 0x78)" identifier = (pointer_expression "*(uint *)(*local_38 + 0x78)" * (cast_expression "(uint *)(*local_38 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_38 + 0x78)" ( (binary_expression "*local_38 + 0x78" (pointer_expression "*local_38" * identifier) + number_literal) ))))) ;) (expression_statement "local_30 = PTR_LAB_000f52fc + -0x5390;" (assignment_expression "local_30 = PTR_LAB_000f52fc + -0x5390" identifier = (binary_expression "PTR_LAB_000f52fc + -0x5390" identifier + number_literal)) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "param_1[6] = (uint)unaff_s2 & 0xffff6fef;" (assignment_expression "param_1[6] = (uint)unaff_s2 & 0xffff6fef" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "(uint)unaff_s2 & 0xffff6fef" (cast_expression "(uint)unaff_s2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "local_38[0x35] = (int)(param_4 + iVar1);" (assignment_expression "local_38[0x35] = (int)(param_4 + iVar1)" (subscript_expression "local_38[0x35]" identifier [ number_literal ]) = (cast_expression "(int)(param_4 + iVar1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_4 + iVar1)" ( (binary_expression "param_4 + iVar1" identifier + identifier) )))) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (expression_statement "unaff_s1 = param_2;" (assignment_expression "unaff_s1 = param_2" identifier = identifier) ;) (expression_statement "local_20 = param_1;" (assignment_expression "local_20 = param_1" identifier = identifier) ;) (if_statement "if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }" if (parenthesized_expression "((int)param_3 < (int)(param_4 + iVar1))" ( (binary_expression "(int)param_3 < (int)(param_4 + iVar1)" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(param_4 + iVar1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_4 + iVar1)" ( (binary_expression "param_4 + iVar1" identifier + identifier) )))) )) (compound_statement "{\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }" { (expression_statement "piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);" (assignment_expression "piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630)" identifier = (cast_expression "(int *)(PTR_LAB_000f52cc + 0x7630)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52cc + 0x7630)" ( (binary_expression "PTR_LAB_000f52cc + 0x7630" identifier + number_literal) )))) ;) (expression_statement "FUN_00049e28();" (call_expression "FUN_00049e28()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }" else (compound_statement "{\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }" { (expression_statement "FUN_0002f078(&local_38);" (call_expression "FUN_0002f078(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "piVar6 = (int *)param_1[6];" (assignment_expression "piVar6 = (int *)param_1[6]" identifier = (cast_expression "(int *)param_1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (expression_statement "param_4 = *(undefined **)(param_2 + 0x18);" (assignment_expression "param_4 = *(undefined **)(param_2 + 0x18)" identifier = (pointer_expression "*(undefined **)(param_2 + 0x18)" * (cast_expression "(undefined **)(param_2 + 0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_2 + 4);" (assignment_expression "uVar2 = *(uint *)(param_2 + 4)" identifier = (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "param_3 = param_1[5];" (assignment_expression "param_3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);" (assignment_expression "unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6)" identifier = (cast_expression "(int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)unaff_s2 & 0x9010 | (uint)piVar6)" ( (binary_expression "(uint)unaff_s2 & 0x9010 | (uint)piVar6" (binary_expression "(uint)unaff_s2 & 0x9010" (cast_expression "(uint)unaff_s2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) | (cast_expression "(uint)piVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "local_38[0x35] = local_38[0x35] - (int)param_4;" (assignment_expression "local_38[0x35] = local_38[0x35] - (int)param_4" (subscript_expression "local_38[0x35]" identifier [ number_literal ]) = (binary_expression "local_38[0x35] - (int)param_4" (subscript_expression "local_38[0x35]" identifier [ number_literal ]) - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;" (assignment_expression "*(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010" (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = (binary_expression "uVar2 | (uint)piVar6 & 0x8010" identifier | (binary_expression "(uint)piVar6 & 0x8010" (cast_expression "(uint)piVar6" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "param_1[6] = (int)unaff_s2;" (assignment_expression "param_1[6] = (int)unaff_s2" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }" if (parenthesized_expression "((int)param_3 < 1)" ( (binary_expression "(int)param_3 < 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar2 = (uint)(0 < local_38[9]);\n      }" { (expression_statement "uVar2 = (uint)(0 < local_38[9]);" (assignment_expression "uVar2 = (uint)(0 < local_38[9])" identifier = (call_expression "(uint)(0 < local_38[9])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < local_38[9])" ( (binary_expression "0 < local_38[9]" number_literal < (subscript_expression "local_38[9]" identifier [ number_literal ])) )))) ;) }) (else_clause "else {\n        uVar2 = 1;\n      }" else (compound_statement "{\n        uVar2 = 1;\n      }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }))) }))) }))) (if_statement "if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_1c == *(undefined4 **)puVar9)" ( (binary_expression "local_1c == *(undefined4 **)puVar9" identifier == (pointer_expression "*(undefined4 **)puVar9" * (cast_expression "(undefined4 **)puVar9" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) })) (expression_statement "puVar4 = local_1c;" (assignment_expression "puVar4 = local_1c" identifier = identifier) ;) (expression_statement "puVar8 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar8 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar13 = puVar8 + 0xb2774;" (assignment_expression "puVar13 = puVar8 + 0xb2774" identifier = (binary_expression "puVar8 + 0xb2774" identifier + number_literal)) ;) (expression_statement "puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);" (assignment_expression "puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c)" identifier = (pointer_expression "*(undefined4 **)(puVar8 + 0xaaa3c)" * (cast_expression "(undefined4 **)(puVar8 + 0xaaa3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0xaaa3c)" ( (binary_expression "puVar8 + 0xaaa3c" identifier + number_literal) ))))) ;) (expression_statement "puStack_6c = puVar9;" (assignment_expression "puStack_6c = puVar9" identifier = identifier) ;) (expression_statement "piStack_7c = (int *)*puStack_9c;" (assignment_expression "piStack_7c = (int *)*puStack_9c" identifier = (cast_expression "(int *)*puStack_9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_9c" * identifier))) ;) (expression_statement "puStack_a8 = puVar13;" (assignment_expression "puStack_a8 = puVar13" identifier = identifier) ;) (expression_statement "piStack_78 = unaff_s0;" (assignment_expression "piStack_78 = unaff_s0" identifier = identifier) ;) (expression_statement "uStack_74 = unaff_s1;" (assignment_expression "uStack_74 = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_70 = unaff_s2;" (assignment_expression "piStack_70 = unaff_s2" identifier = identifier) ;) (if_statement "if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }" else (compound_statement "{\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }" { (expression_statement "piVar7 = (int *)*puVar4;" (assignment_expression "piVar7 = (int *)*puVar4" identifier = (cast_expression "(int *)*puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;" (assignment_expression "iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94" identifier = (binary_expression "*(int *)(puVar8 + 0xaa7d0) + 0xc94" (pointer_expression "*(int *)(puVar8 + 0xaa7d0)" * (cast_expression "(int *)(puVar8 + 0xaa7d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xaa7d0)" ( (binary_expression "puVar8 + 0xaa7d0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "unaff_s4 = 0xffff6fef;" (assignment_expression "unaff_s4 = 0xffff6fef" identifier = number_literal) ;) (expression_statement "uStack_8c = 0;" (assignment_expression "uStack_8c = 0" identifier = number_literal) ;) (expression_statement "uVar5 = puVar4[6] & 0xffff6fef;" (assignment_expression "uVar5 = puVar4[6] & 0xffff6fef" identifier = (binary_expression "puVar4[6] & 0xffff6fef" (subscript_expression "puVar4[6]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar2 = puVar4[6] & 0x9010;" (assignment_expression "uVar2 = puVar4[6] & 0x9010" identifier = (binary_expression "puVar4[6] & 0x9010" (subscript_expression "puVar4[6]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;" (assignment_expression "iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390" identifier = (binary_expression "*(int *)(puVar8 + 0xaa7d0) + -0x5390" (pointer_expression "*(int *)(puVar8 + 0xaa7d0)" * (cast_expression "(int *)(puVar8 + 0xaa7d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xaa7d0)" ( (binary_expression "puVar8 + 0xaa7d0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar4[6] = uVar5;" (assignment_expression "puVar4[6] = uVar5" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_98 = piVar7;" (assignment_expression "piStack_98 = piVar7" identifier = identifier) ;) (expression_statement "puStack_80 = puVar4;" (assignment_expression "puStack_80 = puVar4" identifier = identifier) ;) (if_statement "if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }" if (parenthesized_expression "(0 < iVar1)" ( (binary_expression "0 < iVar1" number_literal < identifier) )) (compound_statement "{\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }" { (expression_statement "unaff_s6 = piVar6 + 1;" (assignment_expression "unaff_s6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = &piStack_98;" (assignment_expression "unaff_s5 = &piStack_98" identifier = (pointer_expression "&piStack_98" & identifier)) ;) (expression_statement "puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);" (assignment_expression "puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88)" identifier = (cast_expression "(undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0xaa7c0) + -0xf88)" ( (binary_expression "*(int *)(puVar8 + 0xaa7c0) + -0xf88" (pointer_expression "*(int *)(puVar8 + 0xaa7c0)" * (cast_expression "(int *)(puVar8 + 0xaa7c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xaa7c0)" ( (binary_expression "puVar8 + 0xaa7c0" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);" do (compound_statement "{\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      }" { (expression_statement "unaff_s1 = uVar2;" (assignment_expression "unaff_s1 = uVar2" identifier = identifier) ;) (expression_statement "unaff_s0 = (int *)*unaff_s6;" (assignment_expression "unaff_s0 = (int *)*unaff_s6" identifier = (cast_expression "(int *)*unaff_s6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s6" * identifier))) ;) (if_statement "if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }" if (parenthesized_expression "(unaff_s0 != (int *)0x0)" ( (binary_expression "unaff_s0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }" { (expression_statement "iVar3 = unaff_s0[6];" (assignment_expression "iVar3 = unaff_s0[6]" identifier = (subscript_expression "unaff_s0[6]" identifier [ number_literal ])) ;) (expression_statement "iVar1 = piStack_98[0x35];" (assignment_expression "iVar1 = piStack_98[0x35]" identifier = (subscript_expression "piStack_98[0x35]" identifier [ number_literal ])) ;) (expression_statement "param_3 = *(uint *)(*piStack_98 + 0x78);" (assignment_expression "param_3 = *(uint *)(*piStack_98 + 0x78)" identifier = (pointer_expression "*(uint *)(*piStack_98 + 0x78)" * (cast_expression "(uint *)(*piStack_98 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piStack_98 + 0x78)" ( (binary_expression "*piStack_98 + 0x78" (pointer_expression "*piStack_98" * identifier) + number_literal) ))))) ;) (expression_statement "piStack_98[0x35] = iVar1 + iVar3;" (assignment_expression "piStack_98[0x35] = iVar1 + iVar3" (subscript_expression "piStack_98[0x35]" identifier [ number_literal ]) = (binary_expression "iVar1 + iVar3" identifier + identifier)) ;) (if_statement "if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }" if (parenthesized_expression "((int)param_3 < iVar1 + iVar3)" ( (binary_expression "(int)param_3 < iVar1 + iVar3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "iVar1 + iVar3" identifier + identifier)) )) (compound_statement "{\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }" { (expression_statement "piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);" (assignment_expression "piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630)" identifier = (cast_expression "(int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar13 + -0x7fd4) + 0x7630)" ( (binary_expression "*(int *)(puVar13 + -0x7fd4) + 0x7630" (pointer_expression "*(int *)(puVar13 + -0x7fd4)" * (cast_expression "(int *)(puVar13 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x7fd4)" ( (binary_expression "puVar13 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00049e28();" (call_expression "FUN_00049e28()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (expression_statement "unaff_s2 = piVar6;" (assignment_expression "unaff_s2 = piVar6" identifier = identifier) ;) (expression_statement "puVar13 = puStack_a8;" (assignment_expression "puVar13 = puStack_a8" identifier = identifier) ;) (goto_statement "goto LAB_0004ac98;" goto statement_identifier ;) })) (expression_statement "FUN_0002f078(unaff_s5,unaff_s0);" (call_expression "FUN_0002f078(unaff_s5,unaff_s0)" identifier (argument_list "(unaff_s5,unaff_s0)" ( identifier , identifier ))) ;) (expression_statement "param_3 = unaff_s0[6];" (assignment_expression "param_3 = unaff_s0[6]" identifier = (subscript_expression "unaff_s0[6]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar4[6];" (assignment_expression "uVar2 = puVar4[6]" identifier = (subscript_expression "puVar4[6]" identifier [ number_literal ])) ;) (expression_statement "piVar7 = (int *)(uVar2 & 0x9010);" (assignment_expression "piVar7 = (int *)(uVar2 & 0x9010)" identifier = (cast_expression "(int *)(uVar2 & 0x9010)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 & 0x9010)" ( (binary_expression "uVar2 & 0x9010" identifier & number_literal) )))) ;) (expression_statement "piStack_98[0x35] = piStack_98[0x35] - param_3;" (assignment_expression "piStack_98[0x35] = piStack_98[0x35] - param_3" (subscript_expression "piStack_98[0x35]" identifier [ number_literal ]) = (binary_expression "piStack_98[0x35] - param_3" (subscript_expression "piStack_98[0x35]" identifier [ number_literal ]) - identifier)) ;) (if_statement "if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }" { (expression_statement "param_3 = uVar2 & 0x8010;" (assignment_expression "param_3 = uVar2 & 0x8010" identifier = (binary_expression "uVar2 & 0x8010" identifier & number_literal)) ;) (expression_statement "unaff_s1 = unaff_s1 | (uint)piVar7;" (assignment_expression "unaff_s1 = unaff_s1 | (uint)piVar7" identifier = (binary_expression "unaff_s1 | (uint)piVar7" identifier | (cast_expression "(uint)piVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "unaff_s0[1] = unaff_s0[1] | param_3;" (assignment_expression "unaff_s0[1] = unaff_s0[1] | param_3" (subscript_expression "unaff_s0[1]" identifier [ number_literal ]) = (binary_expression "unaff_s0[1] | param_3" (subscript_expression "unaff_s0[1]" identifier [ number_literal ]) | identifier)) ;) (expression_statement "puVar4[6] = uVar2 & 0xffff6fef;" (assignment_expression "puVar4[6] = uVar2 & 0xffff6fef" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = (binary_expression "uVar2 & 0xffff6fef" identifier & number_literal)) ;) })) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (expression_statement "unaff_s2 = piVar6;" (assignment_expression "unaff_s2 = piVar6" identifier = identifier) ;) (expression_statement "puVar13 = puStack_a8;" (assignment_expression "puVar13 = puStack_a8" identifier = identifier) ;) (if_statement "if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;" if (parenthesized_expression "((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9]))" ( (binary_expression "(0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])" (parenthesized_expression "(0 < (int)puVar4[5])" ( (binary_expression "0 < (int)puVar4[5]" number_literal < (cast_expression "(int)puVar4[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar4[5]" identifier [ number_literal ]))) )) || (parenthesized_expression "(uVar2 = 2, 0 < piStack_98[9])" ( (comma_expression "uVar2 = 2, 0 < piStack_98[9]" (assignment_expression "uVar2 = 2" identifier = number_literal) , (binary_expression "0 < piStack_98[9]" number_literal < (subscript_expression "piStack_98[9]" identifier [ number_literal ]))) ))) )) (goto_statement "goto LAB_0004ac98;" goto statement_identifier ;)) (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = unaff_s6 + 4;" (assignment_expression "unaff_s6 = unaff_s6 + 4" identifier = (binary_expression "unaff_s6 + 4" identifier + number_literal)) ;) (expression_statement "uVar2 = unaff_s1;" (assignment_expression "uVar2 = unaff_s1" identifier = identifier) ;) }) while (parenthesized_expression "(iVar11 < iVar1)" ( (binary_expression "iVar11 < iVar1" identifier < identifier) )) ;) (expression_statement "uVar5 = puVar4[6];" (assignment_expression "uVar5 = puVar4[6]" identifier = (subscript_expression "puVar4[6]" identifier [ number_literal ])) ;) })) (expression_statement "unaff_s1 = uVar2 | uVar5;" (assignment_expression "unaff_s1 = uVar2 | uVar5" identifier = (binary_expression "uVar2 | uVar5" identifier | identifier)) ;) (expression_statement "puVar4[6] = unaff_s1;" (assignment_expression "puVar4[6] = unaff_s1" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "unaff_s2 = piVar6;" (assignment_expression "unaff_s2 = piVar6" identifier = identifier) ;) }))) (labeled_statement "LAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }" if (parenthesized_expression "(piStack_7c == (int *)*puStack_9c)" ( (binary_expression "piStack_7c == (int *)*puStack_9c" identifier == (cast_expression "(int *)*puStack_9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_9c" * identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "pcVar12 = *(code **)(puVar13 + -0x7d60);" (assignment_expression "pcVar12 = *(code **)(puVar13 + -0x7d60)" identifier = (pointer_expression "*(code **)(puVar13 + -0x7d60)" * (cast_expression "(code **)(puVar13 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x7d60)" ( (binary_expression "puVar13 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = FUN_0004ad0c;" (assignment_expression "pcVar14 = FUN_0004ad0c" identifier = identifier) ;) (expression_statement "piVar6 = piStack_7c;" (assignment_expression "piVar6 = piStack_7c" identifier = identifier) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar8 = puStack_a8;" (assignment_expression "puVar8 = puStack_a8" identifier = identifier) ;) (expression_statement "piVar10 = *(int **)(pcVar12 + 0xaa85c);" (assignment_expression "piVar10 = *(int **)(pcVar12 + 0xaa85c)" identifier = (pointer_expression "*(int **)(pcVar12 + 0xaa85c)" * (cast_expression "(int **)(pcVar12 + 0xaa85c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0xaa85c)" ( (binary_expression "pcVar12 + 0xaa85c" identifier + number_literal) ))))) ;) (expression_statement "piStack_150 = (int *)0x0;" (assignment_expression "piStack_150 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "uStack_148 = 0;" (assignment_expression "uStack_148 = 0" identifier = number_literal) ;) (expression_statement "uStack_144 = 0;" (assignment_expression "uStack_144 = 0" identifier = number_literal) ;) (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" identifier = number_literal) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "piStack_dc = (int *)*piVar10;" (assignment_expression "piStack_dc = (int *)*piVar10" identifier = (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) ;) (expression_statement "piStack_d8 = unaff_s0;" (assignment_expression "piStack_d8 = unaff_s0" identifier = identifier) ;) (expression_statement "uStack_d4 = unaff_s1;" (assignment_expression "uStack_d4 = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_d0 = unaff_s2;" (assignment_expression "piStack_d0 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_cc = puVar9;" (assignment_expression "puStack_cc = puVar9" identifier = identifier) ;) (expression_statement "uStack_c8 = unaff_s4;" (assignment_expression "uStack_c8 = unaff_s4" identifier = identifier) ;) (expression_statement "ppiStack_c4 = unaff_s5;" (assignment_expression "ppiStack_c4 = unaff_s5" identifier = identifier) ;) (expression_statement "piStack_c0 = unaff_s6;" (assignment_expression "piStack_c0 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_bc = pcVar14;" (assignment_expression "pcStack_bc = pcVar14" identifier = identifier) ;) (expression_statement "uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);" (assignment_expression "uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50)" identifier = (call_expression "(**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50)" (parenthesized_expression "(**(code **)(pcVar12 + 0xaa744))" ( (pointer_expression "**(code **)(pcVar12 + 0xaa744)" * (pointer_expression "*(code **)(pcVar12 + 0xaa744)" * (cast_expression "(code **)(pcVar12 + 0xaa744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0xaa744)" ( (binary_expression "pcVar12 + 0xaa744" identifier + number_literal) ))))) )) (argument_list "(auStack_130,0,0x50)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }" { (expression_statement "iStack_120 = *piVar7;" (assignment_expression "iStack_120 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "auStack_130[0] = 1;" (assignment_expression "auStack_130[0] = 1" (subscript_expression "auStack_130[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_100 = 0xffffffff;" (assignment_expression "uStack_100 = 0xffffffff" identifier = number_literal) ;) (expression_statement "piStack_118 = piVar7;" (assignment_expression "piStack_118 = piVar7" identifier = identifier) ;) (if_statement "if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }" if (parenthesized_expression "(piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c))" ( (binary_expression "piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)" (subscript_expression "piVar7[0x12]" identifier [ number_literal ]) != (pointer_expression "*(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar6 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(*piVar6 + 0x10) + 0x1c" (pointer_expression "*(int *)(*piVar6 + 0x10)" * (cast_expression "(int *)(*piVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0x10)" ( (binary_expression "*piVar6 + 0x10" (pointer_expression "*piVar6" * identifier) + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      param_3 = param_3 | 0x40000;\n    }" { (expression_statement "param_3 = param_3 | 0x40000;" (assignment_expression "param_3 = param_3 | 0x40000" identifier = (binary_expression "param_3 | 0x40000" identifier | number_literal)) ;) })) })) (expression_statement "uStack_138 = param_3 | 0x10000;" (assignment_expression "uStack_138 = param_3 | 0x10000" identifier = (binary_expression "param_3 | 0x10000" identifier | number_literal)) ;) (expression_statement "piStack_150 = piVar6;" (assignment_expression "piStack_150 = piVar6" identifier = identifier) ;) (expression_statement "uVar2 = FUN_0004a9d4(&piStack_150);" (assignment_expression "uVar2 = FUN_0004a9d4(&piStack_150)" identifier = (call_expression "FUN_0004a9d4(&piStack_150)" identifier (argument_list "(&piStack_150)" ( (pointer_expression "&piStack_150" & identifier) )))) ;) (if_statement "if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }" if (parenthesized_expression "((uVar2 == 0) && (puVar8 != (undefined *)0x0))" ( (binary_expression "(uVar2 == 0) && (puVar8 != (undefined *)0x0)" (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar8 != (undefined *)0x0)" ( (binary_expression "puVar8 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }" { (expression_statement "uVar2 = FUN_0004ab2c(&piStack_150);" (assignment_expression "uVar2 = FUN_0004ab2c(&piStack_150)" identifier = (call_expression "FUN_0004ab2c(&piStack_150)" identifier (argument_list "(&piStack_150)" ( (pointer_expression "&piStack_150" & identifier) )))) ;) (expression_statement "param_4 = puVar8;" (assignment_expression "param_4 = puVar8" identifier = identifier) ;) })) (if_statement "if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }" if (parenthesized_expression "(piStack_dc == (int *)*piVar10)" ( (binary_expression "piStack_dc == (int *)*piVar10" identifier == (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) })) (expression_statement "pcVar12 = *(code **)(pcVar12 + 0xaa834);" (assignment_expression "pcVar12 = *(code **)(pcVar12 + 0xaa834)" identifier = (pointer_expression "*(code **)(pcVar12 + 0xaa834)" * (cast_expression "(code **)(pcVar12 + 0xaa834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0xaa834)" ( (binary_expression "pcVar12 + 0xaa834" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = piStack_dc;" (assignment_expression "piVar6 = piStack_dc" identifier = identifier) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "FUN_0002fde8(param_4);" (call_expression "FUN_0002fde8(param_4)" identifier (argument_list "(param_4)" ( identifier ))) ;) (if_statement "if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }" if (parenthesized_expression "(*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78))" ( (binary_expression "*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)" (pointer_expression "*(int *)(param_4 + 0x18)" * (cast_expression "(int *)(param_4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(int *)(*piVar6 + 0x78)" * (cast_expression "(int *)(*piVar6 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0x78)" ( (binary_expression "*piVar6 + 0x78" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);" (assignment_expression "uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630)" identifier = (call_expression "FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630)" identifier (argument_list "(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630)" ( identifier , (binary_expression "*(int *)(pcVar12 + 0xaa45c) + 0x7630" (pointer_expression "*(int *)(pcVar12 + 0xaa45c)" * (cast_expression "(int *)(pcVar12 + 0xaa45c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0xaa45c)" ( (binary_expression "pcVar12 + 0xaa45c" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "int sqlite3ResolveExprNames(NameContext *pNC,Expr *pExpr)\n\n{\n  anon_union_4_16_1c331a60_for_u aVar1;\n  int iVar2;\n  uint uVar3;\n  Parse *pPVar4;\n  int *zFormat;\n  Parse *pPVar5;\n  uint in_a2;\n  Expr *in_a3;\n  Expr *unaff_s0;\n  Expr *unaff_s1;\n  Expr *pEVar6;\n  int *unaff_s2;\n  undefined *puVar7;\n  AggInfo_col *pAVar8;\n  undefined4 unaff_s4;\n  Walker *unaff_s5;\n  int *unaff_s6;\n  int iVar9;\n  undefined *puVar10;\n  AggInfo *pAVar11;\n  Expr *pEVar12;\n  code *pcVar13;\n  NameContext NStack_150;\n  undefined4 auStack_130 [4];\n  sqlite3 *psStack_120;\n  Parse *pPStack_118;\n  undefined4 uStack_100;\n  Parse *pPStack_dc;\n  Expr *pEStack_d8;\n  Expr *pEStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  Walker *pWStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  Expr *pEStack_a8;\n  int *piStack_9c;\n  Walker WStack_98;\n  Parse *pPStack_7c;\n  Expr *pEStack_78;\n  Expr *pEStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  Walker w;\n  \n  puVar7 = PTR___stack_chk_guard_000f5568;\n  aVar1 = *(anon_union_4_16_1c331a60_for_u *)PTR___stack_chk_guard_000f5568;\n  if (pExpr == (Expr *)0x0) {\n    uVar3 = 0;\n    zFormat = (int *)0x0;\n  }\n  else {\n    w.pParse = pNC->pParse;\n    in_a3 = (Expr *)pExpr->nHeight;\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52fc + 0xc94);\n    unaff_s2 = (int *)pNC->ncFlags;\n    iVar2 = (w.pParse)->nHeight;\n    in_a2 = (w.pParse)->db->aLimit[3];\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52fc + -0x5390);\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pNC->ncFlags = (uint)unaff_s2 & 0xffff6fef;\n    (w.pParse)->nHeight = (int)(&in_a3->op + iVar2);\n    unaff_s0 = (Expr *)pNC;\n    unaff_s1 = pExpr;\n    w.u.pNC = pNC;\n    if ((int)in_a2 < (int)(&in_a3->op + iVar2)) {\n      zFormat = (int *)(PTR_LAB_000f52cc + 0x7630);\n      sqlite3ErrorMsg(w.pParse,(char *)zFormat);\n      uVar3 = 1;\n    }\n    else {\n      walkExpr(&w,pExpr);\n      zFormat = (int *)pNC->ncFlags;\n      in_a3 = (Expr *)pExpr->nHeight;\n      uVar3 = pExpr->flags;\n      in_a2 = pNC->nErr;\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);\n      (w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;\n      pExpr->flags = uVar3 | (uint)zFormat & 0x8010;\n      pNC->ncFlags = (int)unaff_s2;\n      if ((int)in_a2 < 1) {\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }\n      else {\n        uVar3 = 1;\n      }\n    }\n  }\n  if (aVar1.pNC == *(NameContext **)puVar7) {\n    return uVar3;\n  }\n  puVar10 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  pEVar12 = (Expr *)(puVar10 + 0xb2774);\n  piStack_9c = *(int **)(puVar10 + 0xaaa3c);\n  puStack_6c = puVar7;\n  pPStack_7c = (Parse *)*piStack_9c;\n  pEStack_a8 = pEVar12;\n  pEStack_78 = unaff_s0;\n  pEStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (zFormat == (int *)0x0) {\n    iVar2 = 0;\n    pPVar5 = (Parse *)0x0;\n  }\n  else {\n    pPVar5 = (aVar1.pNC)->pParse;\n    WStack_98.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar10 + 0xaa7d0) + 0xc94)\n    ;\n    iVar2 = *zFormat;\n    unaff_s4 = 0xffff6fef;\n    WStack_98.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    uVar3 = (aVar1.pNC)->ncFlags & 0xffff6fef;\n    pEVar6 = (Expr *)((aVar1.pNC)->ncFlags & 0x9010);\n    WStack_98.xSelectCallback =\n         (_func_int_Walker_ptr_Select_ptr *)(*(int *)(puVar10 + 0xaa7d0) + -0x5390);\n    (aVar1.pNC)->ncFlags = uVar3;\n    WStack_98.pParse = pPVar5;\n    WStack_98.u = aVar1;\n    if (0 < iVar2) {\n      unaff_s6 = zFormat + 1;\n      iVar9 = 0;\n      unaff_s5 = &WStack_98;\n      puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = pEVar6;\n        unaff_s0 = (Expr *)*unaff_s6;\n        if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }\n        iVar9 = iVar9 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        pEVar6 = unaff_s1;\n      } while (iVar9 < iVar2);\n      uVar3 = (aVar1.pNC)->ncFlags;\n    }\n    unaff_s1 = (Expr *)((uint)pEVar6 | uVar3);\n    (aVar1.pNC)->ncFlags = (int)unaff_s1;\n    iVar2 = 0;\n    unaff_s2 = zFormat;\n  }\nLAB_0004ac98:\n  if (pPStack_7c == (Parse *)*piStack_9c) {\n    return iVar2;\n  }\n  pAVar11 = pEVar12[-0x26a].pAggInfo;\n  pcVar13 = sqlite3ResolveSelfReference;\n  pPVar4 = pPStack_7c;\n  (*(code *)pAVar11)();\n  pEVar12 = pEStack_a8;\n  pAVar8 = pAVar11[0x30b8].aCol;\n  NStack_150.pParse = (Parse *)0x0;\n  NStack_150.pSrcList = (SrcList *)0x0;\n  NStack_150.uNC.pEList = (ExprList *)0x0;\n  NStack_150.pNext = (NameContext *)0x0;\n  NStack_150.nRef = 0;\n  NStack_150.nErr = 0;\n  NStack_150.ncFlags = 0;\n  NStack_150.pWinSelect = (Select *)0x0;\n  pPStack_dc = (Parse *)pAVar8->pTab;\n  pEStack_d8 = unaff_s0;\n  pEStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar7;\n  uStack_c8 = unaff_s4;\n  pWStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar13;\n  NStack_150.pSrcList = (SrcList *)(*(code *)pAVar11[0x30b3].aCol)(auStack_130,0,0x50);\n  if (pPVar5 != (Parse *)0x0) {\n    psStack_120 = pPVar5->db;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    pPStack_118 = pPVar5;\n    if ((Schema *)(pPVar5->constraintName).z != pPVar4->db->aDb[1].pSchema) {\n      in_a2 = in_a2 | 0x40000;\n    }\n  }\n  NStack_150.ncFlags = in_a2 | 0x10000;\n  NStack_150.pParse = pPVar4;\n  iVar2 = sqlite3ResolveExprNames(&NStack_150,in_a3);\n  if ((iVar2 == 0) && (pEVar12 != (Expr *)0x0)) {\n    iVar2 = sqlite3ResolveExprListNames(&NStack_150,(ExprList *)pEVar12);\n    in_a3 = pEVar12;\n  }\n  if (pPStack_dc == (Parse *)pAVar8->pTab) {\n    return iVar2;\n  }\n  pcVar13 = (code *)pAVar11[0x30b7].nFunc;\n  pPVar5 = pPStack_dc;\n  (*pcVar13)();\n  exprSetHeight(in_a3);\n  uVar3 = (uint)(pPVar5->db->aLimit[3] < in_a3->nHeight);\n  if (uVar3 == 0) {\n    return 0;\n  }\n  sqlite3ErrorMsg(pPVar5,(char *)(*(int *)(pcVar13 + 0xaa45c) + 0x7630));\n  return uVar3;\n}\n\n" (function_definition "int sqlite3ResolveExprNames(NameContext *pNC,Expr *pExpr)\n\n{\n  anon_union_4_16_1c331a60_for_u aVar1;\n  int iVar2;\n  uint uVar3;\n  Parse *pPVar4;\n  int *zFormat;\n  Parse *pPVar5;\n  uint in_a2;\n  Expr *in_a3;\n  Expr *unaff_s0;\n  Expr *unaff_s1;\n  Expr *pEVar6;\n  int *unaff_s2;\n  undefined *puVar7;\n  AggInfo_col *pAVar8;\n  undefined4 unaff_s4;\n  Walker *unaff_s5;\n  int *unaff_s6;\n  int iVar9;\n  undefined *puVar10;\n  AggInfo *pAVar11;\n  Expr *pEVar12;\n  code *pcVar13;\n  NameContext NStack_150;\n  undefined4 auStack_130 [4];\n  sqlite3 *psStack_120;\n  Parse *pPStack_118;\n  undefined4 uStack_100;\n  Parse *pPStack_dc;\n  Expr *pEStack_d8;\n  Expr *pEStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  Walker *pWStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  Expr *pEStack_a8;\n  int *piStack_9c;\n  Walker WStack_98;\n  Parse *pPStack_7c;\n  Expr *pEStack_78;\n  Expr *pEStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  Walker w;\n  \n  puVar7 = PTR___stack_chk_guard_000f5568;\n  aVar1 = *(anon_union_4_16_1c331a60_for_u *)PTR___stack_chk_guard_000f5568;\n  if (pExpr == (Expr *)0x0) {\n    uVar3 = 0;\n    zFormat = (int *)0x0;\n  }\n  else {\n    w.pParse = pNC->pParse;\n    in_a3 = (Expr *)pExpr->nHeight;\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52fc + 0xc94);\n    unaff_s2 = (int *)pNC->ncFlags;\n    iVar2 = (w.pParse)->nHeight;\n    in_a2 = (w.pParse)->db->aLimit[3];\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52fc + -0x5390);\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pNC->ncFlags = (uint)unaff_s2 & 0xffff6fef;\n    (w.pParse)->nHeight = (int)(&in_a3->op + iVar2);\n    unaff_s0 = (Expr *)pNC;\n    unaff_s1 = pExpr;\n    w.u.pNC = pNC;\n    if ((int)in_a2 < (int)(&in_a3->op + iVar2)) {\n      zFormat = (int *)(PTR_LAB_000f52cc + 0x7630);\n      sqlite3ErrorMsg(w.pParse,(char *)zFormat);\n      uVar3 = 1;\n    }\n    else {\n      walkExpr(&w,pExpr);\n      zFormat = (int *)pNC->ncFlags;\n      in_a3 = (Expr *)pExpr->nHeight;\n      uVar3 = pExpr->flags;\n      in_a2 = pNC->nErr;\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);\n      (w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;\n      pExpr->flags = uVar3 | (uint)zFormat & 0x8010;\n      pNC->ncFlags = (int)unaff_s2;\n      if ((int)in_a2 < 1) {\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }\n      else {\n        uVar3 = 1;\n      }\n    }\n  }\n  if (aVar1.pNC == *(NameContext **)puVar7) {\n    return uVar3;\n  }\n  puVar10 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  pEVar12 = (Expr *)(puVar10 + 0xb2774);\n  piStack_9c = *(int **)(puVar10 + 0xaaa3c);\n  puStack_6c = puVar7;\n  pPStack_7c = (Parse *)*piStack_9c;\n  pEStack_a8 = pEVar12;\n  pEStack_78 = unaff_s0;\n  pEStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (zFormat == (int *)0x0) {\n    iVar2 = 0;\n    pPVar5 = (Parse *)0x0;\n  }\n  else {\n    pPVar5 = (aVar1.pNC)->pParse;\n    WStack_98.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar10 + 0xaa7d0) + 0xc94)\n    ;\n    iVar2 = *zFormat;\n    unaff_s4 = 0xffff6fef;\n    WStack_98.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    uVar3 = (aVar1.pNC)->ncFlags & 0xffff6fef;\n    pEVar6 = (Expr *)((aVar1.pNC)->ncFlags & 0x9010);\n    WStack_98.xSelectCallback =\n         (_func_int_Walker_ptr_Select_ptr *)(*(int *)(puVar10 + 0xaa7d0) + -0x5390);\n    (aVar1.pNC)->ncFlags = uVar3;\n    WStack_98.pParse = pPVar5;\n    WStack_98.u = aVar1;\n    if (0 < iVar2) {\n      unaff_s6 = zFormat + 1;\n      iVar9 = 0;\n      unaff_s5 = &WStack_98;\n      puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = pEVar6;\n        unaff_s0 = (Expr *)*unaff_s6;\n        if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }\n        iVar9 = iVar9 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        pEVar6 = unaff_s1;\n      } while (iVar9 < iVar2);\n      uVar3 = (aVar1.pNC)->ncFlags;\n    }\n    unaff_s1 = (Expr *)((uint)pEVar6 | uVar3);\n    (aVar1.pNC)->ncFlags = (int)unaff_s1;\n    iVar2 = 0;\n    unaff_s2 = zFormat;\n  }\nLAB_0004ac98:\n  if (pPStack_7c == (Parse *)*piStack_9c) {\n    return iVar2;\n  }\n  pAVar11 = pEVar12[-0x26a].pAggInfo;\n  pcVar13 = sqlite3ResolveSelfReference;\n  pPVar4 = pPStack_7c;\n  (*(code *)pAVar11)();\n  pEVar12 = pEStack_a8;\n  pAVar8 = pAVar11[0x30b8].aCol;\n  NStack_150.pParse = (Parse *)0x0;\n  NStack_150.pSrcList = (SrcList *)0x0;\n  NStack_150.uNC.pEList = (ExprList *)0x0;\n  NStack_150.pNext = (NameContext *)0x0;\n  NStack_150.nRef = 0;\n  NStack_150.nErr = 0;\n  NStack_150.ncFlags = 0;\n  NStack_150.pWinSelect = (Select *)0x0;\n  pPStack_dc = (Parse *)pAVar8->pTab;\n  pEStack_d8 = unaff_s0;\n  pEStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar7;\n  uStack_c8 = unaff_s4;\n  pWStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar13;\n  NStack_150.pSrcList = (SrcList *)(*(code *)pAVar11[0x30b3].aCol)(auStack_130,0,0x50);\n  if (pPVar5 != (Parse *)0x0) {\n    psStack_120 = pPVar5->db;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    pPStack_118 = pPVar5;\n    if ((Schema *)(pPVar5->constraintName).z != pPVar4->db->aDb[1].pSchema) {\n      in_a2 = in_a2 | 0x40000;\n    }\n  }\n  NStack_150.ncFlags = in_a2 | 0x10000;\n  NStack_150.pParse = pPVar4;\n  iVar2 = sqlite3ResolveExprNames(&NStack_150,in_a3);\n  if ((iVar2 == 0) && (pEVar12 != (Expr *)0x0)) {\n    iVar2 = sqlite3ResolveExprListNames(&NStack_150,(ExprList *)pEVar12);\n    in_a3 = pEVar12;\n  }\n  if (pPStack_dc == (Parse *)pAVar8->pTab) {\n    return iVar2;\n  }\n  pcVar13 = (code *)pAVar11[0x30b7].nFunc;\n  pPVar5 = pPStack_dc;\n  (*pcVar13)();\n  exprSetHeight(in_a3);\n  uVar3 = (uint)(pPVar5->db->aLimit[3] < in_a3->nHeight);\n  if (uVar3 == 0) {\n    return 0;\n  }\n  sqlite3ErrorMsg(pPVar5,(char *)(*(int *)(pcVar13 + 0xaa45c) + 0x7630));\n  return uVar3;\n}" primitive_type (function_declarator "sqlite3ResolveExprNames(NameContext *pNC,Expr *pExpr)" identifier (parameter_list "(NameContext *pNC,Expr *pExpr)" ( (parameter_declaration "NameContext *pNC" type_identifier (pointer_declarator "*pNC" * identifier)) , (parameter_declaration "Expr *pExpr" type_identifier (pointer_declarator "*pExpr" * identifier)) ))) (compound_statement "{\n  anon_union_4_16_1c331a60_for_u aVar1;\n  int iVar2;\n  uint uVar3;\n  Parse *pPVar4;\n  int *zFormat;\n  Parse *pPVar5;\n  uint in_a2;\n  Expr *in_a3;\n  Expr *unaff_s0;\n  Expr *unaff_s1;\n  Expr *pEVar6;\n  int *unaff_s2;\n  undefined *puVar7;\n  AggInfo_col *pAVar8;\n  undefined4 unaff_s4;\n  Walker *unaff_s5;\n  int *unaff_s6;\n  int iVar9;\n  undefined *puVar10;\n  AggInfo *pAVar11;\n  Expr *pEVar12;\n  code *pcVar13;\n  NameContext NStack_150;\n  undefined4 auStack_130 [4];\n  sqlite3 *psStack_120;\n  Parse *pPStack_118;\n  undefined4 uStack_100;\n  Parse *pPStack_dc;\n  Expr *pEStack_d8;\n  Expr *pEStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  Walker *pWStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  Expr *pEStack_a8;\n  int *piStack_9c;\n  Walker WStack_98;\n  Parse *pPStack_7c;\n  Expr *pEStack_78;\n  Expr *pEStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  Walker w;\n  \n  puVar7 = PTR___stack_chk_guard_000f5568;\n  aVar1 = *(anon_union_4_16_1c331a60_for_u *)PTR___stack_chk_guard_000f5568;\n  if (pExpr == (Expr *)0x0) {\n    uVar3 = 0;\n    zFormat = (int *)0x0;\n  }\n  else {\n    w.pParse = pNC->pParse;\n    in_a3 = (Expr *)pExpr->nHeight;\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52fc + 0xc94);\n    unaff_s2 = (int *)pNC->ncFlags;\n    iVar2 = (w.pParse)->nHeight;\n    in_a2 = (w.pParse)->db->aLimit[3];\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52fc + -0x5390);\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pNC->ncFlags = (uint)unaff_s2 & 0xffff6fef;\n    (w.pParse)->nHeight = (int)(&in_a3->op + iVar2);\n    unaff_s0 = (Expr *)pNC;\n    unaff_s1 = pExpr;\n    w.u.pNC = pNC;\n    if ((int)in_a2 < (int)(&in_a3->op + iVar2)) {\n      zFormat = (int *)(PTR_LAB_000f52cc + 0x7630);\n      sqlite3ErrorMsg(w.pParse,(char *)zFormat);\n      uVar3 = 1;\n    }\n    else {\n      walkExpr(&w,pExpr);\n      zFormat = (int *)pNC->ncFlags;\n      in_a3 = (Expr *)pExpr->nHeight;\n      uVar3 = pExpr->flags;\n      in_a2 = pNC->nErr;\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);\n      (w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;\n      pExpr->flags = uVar3 | (uint)zFormat & 0x8010;\n      pNC->ncFlags = (int)unaff_s2;\n      if ((int)in_a2 < 1) {\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }\n      else {\n        uVar3 = 1;\n      }\n    }\n  }\n  if (aVar1.pNC == *(NameContext **)puVar7) {\n    return uVar3;\n  }\n  puVar10 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  pEVar12 = (Expr *)(puVar10 + 0xb2774);\n  piStack_9c = *(int **)(puVar10 + 0xaaa3c);\n  puStack_6c = puVar7;\n  pPStack_7c = (Parse *)*piStack_9c;\n  pEStack_a8 = pEVar12;\n  pEStack_78 = unaff_s0;\n  pEStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (zFormat == (int *)0x0) {\n    iVar2 = 0;\n    pPVar5 = (Parse *)0x0;\n  }\n  else {\n    pPVar5 = (aVar1.pNC)->pParse;\n    WStack_98.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar10 + 0xaa7d0) + 0xc94)\n    ;\n    iVar2 = *zFormat;\n    unaff_s4 = 0xffff6fef;\n    WStack_98.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    uVar3 = (aVar1.pNC)->ncFlags & 0xffff6fef;\n    pEVar6 = (Expr *)((aVar1.pNC)->ncFlags & 0x9010);\n    WStack_98.xSelectCallback =\n         (_func_int_Walker_ptr_Select_ptr *)(*(int *)(puVar10 + 0xaa7d0) + -0x5390);\n    (aVar1.pNC)->ncFlags = uVar3;\n    WStack_98.pParse = pPVar5;\n    WStack_98.u = aVar1;\n    if (0 < iVar2) {\n      unaff_s6 = zFormat + 1;\n      iVar9 = 0;\n      unaff_s5 = &WStack_98;\n      puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = pEVar6;\n        unaff_s0 = (Expr *)*unaff_s6;\n        if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }\n        iVar9 = iVar9 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        pEVar6 = unaff_s1;\n      } while (iVar9 < iVar2);\n      uVar3 = (aVar1.pNC)->ncFlags;\n    }\n    unaff_s1 = (Expr *)((uint)pEVar6 | uVar3);\n    (aVar1.pNC)->ncFlags = (int)unaff_s1;\n    iVar2 = 0;\n    unaff_s2 = zFormat;\n  }\nLAB_0004ac98:\n  if (pPStack_7c == (Parse *)*piStack_9c) {\n    return iVar2;\n  }\n  pAVar11 = pEVar12[-0x26a].pAggInfo;\n  pcVar13 = sqlite3ResolveSelfReference;\n  pPVar4 = pPStack_7c;\n  (*(code *)pAVar11)();\n  pEVar12 = pEStack_a8;\n  pAVar8 = pAVar11[0x30b8].aCol;\n  NStack_150.pParse = (Parse *)0x0;\n  NStack_150.pSrcList = (SrcList *)0x0;\n  NStack_150.uNC.pEList = (ExprList *)0x0;\n  NStack_150.pNext = (NameContext *)0x0;\n  NStack_150.nRef = 0;\n  NStack_150.nErr = 0;\n  NStack_150.ncFlags = 0;\n  NStack_150.pWinSelect = (Select *)0x0;\n  pPStack_dc = (Parse *)pAVar8->pTab;\n  pEStack_d8 = unaff_s0;\n  pEStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar7;\n  uStack_c8 = unaff_s4;\n  pWStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar13;\n  NStack_150.pSrcList = (SrcList *)(*(code *)pAVar11[0x30b3].aCol)(auStack_130,0,0x50);\n  if (pPVar5 != (Parse *)0x0) {\n    psStack_120 = pPVar5->db;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    pPStack_118 = pPVar5;\n    if ((Schema *)(pPVar5->constraintName).z != pPVar4->db->aDb[1].pSchema) {\n      in_a2 = in_a2 | 0x40000;\n    }\n  }\n  NStack_150.ncFlags = in_a2 | 0x10000;\n  NStack_150.pParse = pPVar4;\n  iVar2 = sqlite3ResolveExprNames(&NStack_150,in_a3);\n  if ((iVar2 == 0) && (pEVar12 != (Expr *)0x0)) {\n    iVar2 = sqlite3ResolveExprListNames(&NStack_150,(ExprList *)pEVar12);\n    in_a3 = pEVar12;\n  }\n  if (pPStack_dc == (Parse *)pAVar8->pTab) {\n    return iVar2;\n  }\n  pcVar13 = (code *)pAVar11[0x30b7].nFunc;\n  pPVar5 = pPStack_dc;\n  (*pcVar13)();\n  exprSetHeight(in_a3);\n  uVar3 = (uint)(pPVar5->db->aLimit[3] < in_a3->nHeight);\n  if (uVar3 == 0) {\n    return 0;\n  }\n  sqlite3ErrorMsg(pPVar5,(char *)(*(int *)(pcVar13 + 0xaa45c) + 0x7630));\n  return uVar3;\n}" { (declaration "anon_union_4_16_1c331a60_for_u aVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "Parse *pPVar4;" type_identifier (pointer_declarator "*pPVar4" * identifier) ;) (declaration "int *zFormat;" primitive_type (pointer_declarator "*zFormat" * identifier) ;) (declaration "Parse *pPVar5;" type_identifier (pointer_declarator "*pPVar5" * identifier) ;) (declaration "uint in_a2;" type_identifier identifier ;) (declaration "Expr *in_a3;" type_identifier (pointer_declarator "*in_a3" * identifier) ;) (declaration "Expr *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "Expr *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "Expr *pEVar6;" type_identifier (pointer_declarator "*pEVar6" * identifier) ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "AggInfo_col *pAVar8;" type_identifier (pointer_declarator "*pAVar8" * identifier) ;) (declaration "undefined4 unaff_s4;" type_identifier identifier ;) (declaration "Walker *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "AggInfo *pAVar11;" type_identifier (pointer_declarator "*pAVar11" * identifier) ;) (declaration "Expr *pEVar12;" type_identifier (pointer_declarator "*pEVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "NameContext NStack_150;" type_identifier identifier ;) (declaration "undefined4 auStack_130 [4];" type_identifier (array_declarator "auStack_130 [4]" identifier [ number_literal ]) ;) (declaration "sqlite3 *psStack_120;" type_identifier (pointer_declarator "*psStack_120" * identifier) ;) (declaration "Parse *pPStack_118;" type_identifier (pointer_declarator "*pPStack_118" * identifier) ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "Parse *pPStack_dc;" type_identifier (pointer_declarator "*pPStack_dc" * identifier) ;) (declaration "Expr *pEStack_d8;" type_identifier (pointer_declarator "*pEStack_d8" * identifier) ;) (declaration "Expr *pEStack_d4;" type_identifier (pointer_declarator "*pEStack_d4" * identifier) ;) (declaration "int *piStack_d0;" primitive_type (pointer_declarator "*piStack_d0" * identifier) ;) (declaration "undefined *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (declaration "undefined4 uStack_c8;" type_identifier identifier ;) (declaration "Walker *pWStack_c4;" type_identifier (pointer_declarator "*pWStack_c4" * identifier) ;) (declaration "int *piStack_c0;" primitive_type (pointer_declarator "*piStack_c0" * identifier) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "Expr *pEStack_a8;" type_identifier (pointer_declarator "*pEStack_a8" * identifier) ;) (declaration "int *piStack_9c;" primitive_type (pointer_declarator "*piStack_9c" * identifier) ;) (declaration "Walker WStack_98;" type_identifier identifier ;) (declaration "Parse *pPStack_7c;" type_identifier (pointer_declarator "*pPStack_7c" * identifier) ;) (declaration "Expr *pEStack_78;" type_identifier (pointer_declarator "*pEStack_78" * identifier) ;) (declaration "Expr *pEStack_74;" type_identifier (pointer_declarator "*pEStack_74" * identifier) ;) (declaration "int *piStack_70;" primitive_type (pointer_declarator "*piStack_70" * identifier) ;) (declaration "undefined *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "Walker w;" type_identifier identifier ;) (expression_statement "puVar7 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar7 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "aVar1 = *(anon_union_4_16_1c331a60_for_u *)PTR___stack_chk_guard_000f5568;" (assignment_expression "aVar1 = *(anon_union_4_16_1c331a60_for_u *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(anon_union_4_16_1c331a60_for_u *)PTR___stack_chk_guard_000f5568" * (cast_expression "(anon_union_4_16_1c331a60_for_u *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "anon_union_4_16_1c331a60_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pExpr == (Expr *)0x0) {\n    uVar3 = 0;\n    zFormat = (int *)0x0;\n  }\n  else {\n    w.pParse = pNC->pParse;\n    in_a3 = (Expr *)pExpr->nHeight;\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52fc + 0xc94);\n    unaff_s2 = (int *)pNC->ncFlags;\n    iVar2 = (w.pParse)->nHeight;\n    in_a2 = (w.pParse)->db->aLimit[3];\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52fc + -0x5390);\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pNC->ncFlags = (uint)unaff_s2 & 0xffff6fef;\n    (w.pParse)->nHeight = (int)(&in_a3->op + iVar2);\n    unaff_s0 = (Expr *)pNC;\n    unaff_s1 = pExpr;\n    w.u.pNC = pNC;\n    if ((int)in_a2 < (int)(&in_a3->op + iVar2)) {\n      zFormat = (int *)(PTR_LAB_000f52cc + 0x7630);\n      sqlite3ErrorMsg(w.pParse,(char *)zFormat);\n      uVar3 = 1;\n    }\n    else {\n      walkExpr(&w,pExpr);\n      zFormat = (int *)pNC->ncFlags;\n      in_a3 = (Expr *)pExpr->nHeight;\n      uVar3 = pExpr->flags;\n      in_a2 = pNC->nErr;\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);\n      (w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;\n      pExpr->flags = uVar3 | (uint)zFormat & 0x8010;\n      pNC->ncFlags = (int)unaff_s2;\n      if ((int)in_a2 < 1) {\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }\n      else {\n        uVar3 = 1;\n      }\n    }\n  }" if (parenthesized_expression "(pExpr == (Expr *)0x0)" ( (binary_expression "pExpr == (Expr *)0x0" identifier == (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = 0;\n    zFormat = (int *)0x0;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (expression_statement "zFormat = (int *)0x0;" (assignment_expression "zFormat = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    w.pParse = pNC->pParse;\n    in_a3 = (Expr *)pExpr->nHeight;\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52fc + 0xc94);\n    unaff_s2 = (int *)pNC->ncFlags;\n    iVar2 = (w.pParse)->nHeight;\n    in_a2 = (w.pParse)->db->aLimit[3];\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52fc + -0x5390);\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pNC->ncFlags = (uint)unaff_s2 & 0xffff6fef;\n    (w.pParse)->nHeight = (int)(&in_a3->op + iVar2);\n    unaff_s0 = (Expr *)pNC;\n    unaff_s1 = pExpr;\n    w.u.pNC = pNC;\n    if ((int)in_a2 < (int)(&in_a3->op + iVar2)) {\n      zFormat = (int *)(PTR_LAB_000f52cc + 0x7630);\n      sqlite3ErrorMsg(w.pParse,(char *)zFormat);\n      uVar3 = 1;\n    }\n    else {\n      walkExpr(&w,pExpr);\n      zFormat = (int *)pNC->ncFlags;\n      in_a3 = (Expr *)pExpr->nHeight;\n      uVar3 = pExpr->flags;\n      in_a2 = pNC->nErr;\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);\n      (w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;\n      pExpr->flags = uVar3 | (uint)zFormat & 0x8010;\n      pNC->ncFlags = (int)unaff_s2;\n      if ((int)in_a2 < 1) {\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }\n      else {\n        uVar3 = 1;\n      }\n    }\n  }" else (compound_statement "{\n    w.pParse = pNC->pParse;\n    in_a3 = (Expr *)pExpr->nHeight;\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52fc + 0xc94);\n    unaff_s2 = (int *)pNC->ncFlags;\n    iVar2 = (w.pParse)->nHeight;\n    in_a2 = (w.pParse)->db->aLimit[3];\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52fc + -0x5390);\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pNC->ncFlags = (uint)unaff_s2 & 0xffff6fef;\n    (w.pParse)->nHeight = (int)(&in_a3->op + iVar2);\n    unaff_s0 = (Expr *)pNC;\n    unaff_s1 = pExpr;\n    w.u.pNC = pNC;\n    if ((int)in_a2 < (int)(&in_a3->op + iVar2)) {\n      zFormat = (int *)(PTR_LAB_000f52cc + 0x7630);\n      sqlite3ErrorMsg(w.pParse,(char *)zFormat);\n      uVar3 = 1;\n    }\n    else {\n      walkExpr(&w,pExpr);\n      zFormat = (int *)pNC->ncFlags;\n      in_a3 = (Expr *)pExpr->nHeight;\n      uVar3 = pExpr->flags;\n      in_a2 = pNC->nErr;\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);\n      (w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;\n      pExpr->flags = uVar3 | (uint)zFormat & 0x8010;\n      pNC->ncFlags = (int)unaff_s2;\n      if ((int)in_a2 < 1) {\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }\n      else {\n        uVar3 = 1;\n      }\n    }\n  }" { (expression_statement "w.pParse = pNC->pParse;" (assignment_expression "w.pParse = pNC->pParse" (field_expression "w.pParse" identifier . field_identifier) = (field_expression "pNC->pParse" identifier -> field_identifier)) ;) (expression_statement "in_a3 = (Expr *)pExpr->nHeight;" (assignment_expression "in_a3 = (Expr *)pExpr->nHeight" identifier = (cast_expression "(Expr *)pExpr->nHeight" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pExpr->nHeight" identifier -> field_identifier))) ;) (expression_statement "w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52fc + 0xc94);" (assignment_expression "w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52fc + 0xc94)" (field_expression "w.xExprCallback" identifier . field_identifier) = (cast_expression "(_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52fc + 0xc94)" ( (type_descriptor "_func_int_Walker_ptr_Expr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52fc + 0xc94)" ( (binary_expression "PTR_LAB_000f52fc + 0xc94" identifier + number_literal) )))) ;) (expression_statement "unaff_s2 = (int *)pNC->ncFlags;" (assignment_expression "unaff_s2 = (int *)pNC->ncFlags" identifier = (cast_expression "(int *)pNC->ncFlags" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pNC->ncFlags" identifier -> field_identifier))) ;) (expression_statement "iVar2 = (w.pParse)->nHeight;" (assignment_expression "iVar2 = (w.pParse)->nHeight" identifier = (field_expression "(w.pParse)->nHeight" (parenthesized_expression "(w.pParse)" ( (field_expression "w.pParse" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "in_a2 = (w.pParse)->db->aLimit[3];" (assignment_expression "in_a2 = (w.pParse)->db->aLimit[3]" identifier = (subscript_expression "(w.pParse)->db->aLimit[3]" (field_expression "(w.pParse)->db->aLimit" (field_expression "(w.pParse)->db" (parenthesized_expression "(w.pParse)" ( (field_expression "w.pParse" identifier . field_identifier) )) -> field_identifier) -> field_identifier) [ number_literal ])) ;) (expression_statement "w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52fc + -0x5390);" (assignment_expression "w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52fc + -0x5390)" (field_expression "w.xSelectCallback" identifier . field_identifier) = (cast_expression "(_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52fc + -0x5390)" ( (type_descriptor "_func_int_Walker_ptr_Select_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52fc + -0x5390)" ( (binary_expression "PTR_LAB_000f52fc + -0x5390" identifier + number_literal) )))) ;) (expression_statement "w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;" (assignment_expression "w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0" (field_expression "w.xSelectCallback2" identifier . field_identifier) = (cast_expression "(_func_void_Walker_ptr_Select_ptr *)0x0" ( (type_descriptor "_func_void_Walker_ptr_Select_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pNC->ncFlags = (uint)unaff_s2 & 0xffff6fef;" (assignment_expression "pNC->ncFlags = (uint)unaff_s2 & 0xffff6fef" (field_expression "pNC->ncFlags" identifier -> field_identifier) = (binary_expression "(uint)unaff_s2 & 0xffff6fef" (cast_expression "(uint)unaff_s2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "(w.pParse)->nHeight = (int)(&in_a3->op + iVar2);" (assignment_expression "(w.pParse)->nHeight = (int)(&in_a3->op + iVar2)" (field_expression "(w.pParse)->nHeight" (parenthesized_expression "(w.pParse)" ( (field_expression "w.pParse" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(int)(&in_a3->op + iVar2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&in_a3->op + iVar2)" ( (binary_expression "&in_a3->op + iVar2" (pointer_expression "&in_a3->op" & (field_expression "in_a3->op" identifier -> field_identifier)) + identifier) )))) ;) (expression_statement "unaff_s0 = (Expr *)pNC;" (assignment_expression "unaff_s0 = (Expr *)pNC" identifier = (cast_expression "(Expr *)pNC" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s1 = pExpr;" (assignment_expression "unaff_s1 = pExpr" identifier = identifier) ;) (expression_statement "w.u.pNC = pNC;" (assignment_expression "w.u.pNC = pNC" (field_expression "w.u.pNC" (field_expression "w.u" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if ((int)in_a2 < (int)(&in_a3->op + iVar2)) {\n      zFormat = (int *)(PTR_LAB_000f52cc + 0x7630);\n      sqlite3ErrorMsg(w.pParse,(char *)zFormat);\n      uVar3 = 1;\n    }\n    else {\n      walkExpr(&w,pExpr);\n      zFormat = (int *)pNC->ncFlags;\n      in_a3 = (Expr *)pExpr->nHeight;\n      uVar3 = pExpr->flags;\n      in_a2 = pNC->nErr;\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);\n      (w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;\n      pExpr->flags = uVar3 | (uint)zFormat & 0x8010;\n      pNC->ncFlags = (int)unaff_s2;\n      if ((int)in_a2 < 1) {\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }\n      else {\n        uVar3 = 1;\n      }\n    }" if (parenthesized_expression "((int)in_a2 < (int)(&in_a3->op + iVar2))" ( (binary_expression "(int)in_a2 < (int)(&in_a3->op + iVar2)" (cast_expression "(int)in_a2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(&in_a3->op + iVar2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&in_a3->op + iVar2)" ( (binary_expression "&in_a3->op + iVar2" (pointer_expression "&in_a3->op" & (field_expression "in_a3->op" identifier -> field_identifier)) + identifier) )))) )) (compound_statement "{\n      zFormat = (int *)(PTR_LAB_000f52cc + 0x7630);\n      sqlite3ErrorMsg(w.pParse,(char *)zFormat);\n      uVar3 = 1;\n    }" { (expression_statement "zFormat = (int *)(PTR_LAB_000f52cc + 0x7630);" (assignment_expression "zFormat = (int *)(PTR_LAB_000f52cc + 0x7630)" identifier = (cast_expression "(int *)(PTR_LAB_000f52cc + 0x7630)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52cc + 0x7630)" ( (binary_expression "PTR_LAB_000f52cc + 0x7630" identifier + number_literal) )))) ;) (expression_statement "sqlite3ErrorMsg(w.pParse,(char *)zFormat);" (call_expression "sqlite3ErrorMsg(w.pParse,(char *)zFormat)" identifier (argument_list "(w.pParse,(char *)zFormat)" ( (field_expression "w.pParse" identifier . field_identifier) , (cast_expression "(char *)zFormat" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      walkExpr(&w,pExpr);\n      zFormat = (int *)pNC->ncFlags;\n      in_a3 = (Expr *)pExpr->nHeight;\n      uVar3 = pExpr->flags;\n      in_a2 = pNC->nErr;\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);\n      (w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;\n      pExpr->flags = uVar3 | (uint)zFormat & 0x8010;\n      pNC->ncFlags = (int)unaff_s2;\n      if ((int)in_a2 < 1) {\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }\n      else {\n        uVar3 = 1;\n      }\n    }" else (compound_statement "{\n      walkExpr(&w,pExpr);\n      zFormat = (int *)pNC->ncFlags;\n      in_a3 = (Expr *)pExpr->nHeight;\n      uVar3 = pExpr->flags;\n      in_a2 = pNC->nErr;\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);\n      (w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;\n      pExpr->flags = uVar3 | (uint)zFormat & 0x8010;\n      pNC->ncFlags = (int)unaff_s2;\n      if ((int)in_a2 < 1) {\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }\n      else {\n        uVar3 = 1;\n      }\n    }" { (expression_statement "walkExpr(&w,pExpr);" (call_expression "walkExpr(&w,pExpr)" identifier (argument_list "(&w,pExpr)" ( (pointer_expression "&w" & identifier) , identifier ))) ;) (expression_statement "zFormat = (int *)pNC->ncFlags;" (assignment_expression "zFormat = (int *)pNC->ncFlags" identifier = (cast_expression "(int *)pNC->ncFlags" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pNC->ncFlags" identifier -> field_identifier))) ;) (expression_statement "in_a3 = (Expr *)pExpr->nHeight;" (assignment_expression "in_a3 = (Expr *)pExpr->nHeight" identifier = (cast_expression "(Expr *)pExpr->nHeight" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pExpr->nHeight" identifier -> field_identifier))) ;) (expression_statement "uVar3 = pExpr->flags;" (assignment_expression "uVar3 = pExpr->flags" identifier = (field_expression "pExpr->flags" identifier -> field_identifier)) ;) (expression_statement "in_a2 = pNC->nErr;" (assignment_expression "in_a2 = pNC->nErr" identifier = (field_expression "pNC->nErr" identifier -> field_identifier)) ;) (expression_statement "unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat);" (assignment_expression "unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat)" identifier = (cast_expression "(int *)((uint)unaff_s2 & 0x9010 | (uint)zFormat)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)unaff_s2 & 0x9010 | (uint)zFormat)" ( (binary_expression "(uint)unaff_s2 & 0x9010 | (uint)zFormat" (binary_expression "(uint)unaff_s2 & 0x9010" (cast_expression "(uint)unaff_s2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) | (cast_expression "(uint)zFormat" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "(w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3;" (assignment_expression "(w.pParse)->nHeight = (w.pParse)->nHeight - (int)in_a3" (field_expression "(w.pParse)->nHeight" (parenthesized_expression "(w.pParse)" ( (field_expression "w.pParse" identifier . field_identifier) )) -> field_identifier) = (binary_expression "(w.pParse)->nHeight - (int)in_a3" (field_expression "(w.pParse)->nHeight" (parenthesized_expression "(w.pParse)" ( (field_expression "w.pParse" identifier . field_identifier) )) -> field_identifier) - (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pExpr->flags = uVar3 | (uint)zFormat & 0x8010;" (assignment_expression "pExpr->flags = uVar3 | (uint)zFormat & 0x8010" (field_expression "pExpr->flags" identifier -> field_identifier) = (binary_expression "uVar3 | (uint)zFormat & 0x8010" identifier | (binary_expression "(uint)zFormat & 0x8010" (cast_expression "(uint)zFormat" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "pNC->ncFlags = (int)unaff_s2;" (assignment_expression "pNC->ncFlags = (int)unaff_s2" (field_expression "pNC->ncFlags" identifier -> field_identifier) = (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((int)in_a2 < 1) {\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }\n      else {\n        uVar3 = 1;\n      }" if (parenthesized_expression "((int)in_a2 < 1)" ( (binary_expression "(int)in_a2 < 1" (cast_expression "(int)in_a2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar3 = (uint)(0 < (w.pParse)->nErr);\n      }" { (expression_statement "uVar3 = (uint)(0 < (w.pParse)->nErr);" (assignment_expression "uVar3 = (uint)(0 < (w.pParse)->nErr)" identifier = (call_expression "(uint)(0 < (w.pParse)->nErr)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < (w.pParse)->nErr)" ( (binary_expression "0 < (w.pParse)->nErr" number_literal < (field_expression "(w.pParse)->nErr" (parenthesized_expression "(w.pParse)" ( (field_expression "w.pParse" identifier . field_identifier) )) -> field_identifier)) )))) ;) }) (else_clause "else {\n        uVar3 = 1;\n      }" else (compound_statement "{\n        uVar3 = 1;\n      }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) }))) }))) }))) (if_statement "if (aVar1.pNC == *(NameContext **)puVar7) {\n    return uVar3;\n  }" if (parenthesized_expression "(aVar1.pNC == *(NameContext **)puVar7)" ( (binary_expression "aVar1.pNC == *(NameContext **)puVar7" (field_expression "aVar1.pNC" identifier . field_identifier) == (pointer_expression "*(NameContext **)puVar7" * (cast_expression "(NameContext **)puVar7" ( (type_descriptor "NameContext **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "puVar10 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pEVar12 = (Expr *)(puVar10 + 0xb2774);" (assignment_expression "pEVar12 = (Expr *)(puVar10 + 0xb2774)" identifier = (cast_expression "(Expr *)(puVar10 + 0xb2774)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xb2774)" ( (binary_expression "puVar10 + 0xb2774" identifier + number_literal) )))) ;) (expression_statement "piStack_9c = *(int **)(puVar10 + 0xaaa3c);" (assignment_expression "piStack_9c = *(int **)(puVar10 + 0xaaa3c)" identifier = (pointer_expression "*(int **)(puVar10 + 0xaaa3c)" * (cast_expression "(int **)(puVar10 + 0xaaa3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xaaa3c)" ( (binary_expression "puVar10 + 0xaaa3c" identifier + number_literal) ))))) ;) (expression_statement "puStack_6c = puVar7;" (assignment_expression "puStack_6c = puVar7" identifier = identifier) ;) (expression_statement "pPStack_7c = (Parse *)*piStack_9c;" (assignment_expression "pPStack_7c = (Parse *)*piStack_9c" identifier = (cast_expression "(Parse *)*piStack_9c" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piStack_9c" * identifier))) ;) (expression_statement "pEStack_a8 = pEVar12;" (assignment_expression "pEStack_a8 = pEVar12" identifier = identifier) ;) (expression_statement "pEStack_78 = unaff_s0;" (assignment_expression "pEStack_78 = unaff_s0" identifier = identifier) ;) (expression_statement "pEStack_74 = unaff_s1;" (assignment_expression "pEStack_74 = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_70 = unaff_s2;" (assignment_expression "piStack_70 = unaff_s2" identifier = identifier) ;) (if_statement "if (zFormat == (int *)0x0) {\n    iVar2 = 0;\n    pPVar5 = (Parse *)0x0;\n  }\n  else {\n    pPVar5 = (aVar1.pNC)->pParse;\n    WStack_98.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar10 + 0xaa7d0) + 0xc94)\n    ;\n    iVar2 = *zFormat;\n    unaff_s4 = 0xffff6fef;\n    WStack_98.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    uVar3 = (aVar1.pNC)->ncFlags & 0xffff6fef;\n    pEVar6 = (Expr *)((aVar1.pNC)->ncFlags & 0x9010);\n    WStack_98.xSelectCallback =\n         (_func_int_Walker_ptr_Select_ptr *)(*(int *)(puVar10 + 0xaa7d0) + -0x5390);\n    (aVar1.pNC)->ncFlags = uVar3;\n    WStack_98.pParse = pPVar5;\n    WStack_98.u = aVar1;\n    if (0 < iVar2) {\n      unaff_s6 = zFormat + 1;\n      iVar9 = 0;\n      unaff_s5 = &WStack_98;\n      puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = pEVar6;\n        unaff_s0 = (Expr *)*unaff_s6;\n        if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }\n        iVar9 = iVar9 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        pEVar6 = unaff_s1;\n      } while (iVar9 < iVar2);\n      uVar3 = (aVar1.pNC)->ncFlags;\n    }\n    unaff_s1 = (Expr *)((uint)pEVar6 | uVar3);\n    (aVar1.pNC)->ncFlags = (int)unaff_s1;\n    iVar2 = 0;\n    unaff_s2 = zFormat;\n  }" if (parenthesized_expression "(zFormat == (int *)0x0)" ( (binary_expression "zFormat == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar2 = 0;\n    pPVar5 = (Parse *)0x0;\n  }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "pPVar5 = (Parse *)0x0;" (assignment_expression "pPVar5 = (Parse *)0x0" identifier = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pPVar5 = (aVar1.pNC)->pParse;\n    WStack_98.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar10 + 0xaa7d0) + 0xc94)\n    ;\n    iVar2 = *zFormat;\n    unaff_s4 = 0xffff6fef;\n    WStack_98.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    uVar3 = (aVar1.pNC)->ncFlags & 0xffff6fef;\n    pEVar6 = (Expr *)((aVar1.pNC)->ncFlags & 0x9010);\n    WStack_98.xSelectCallback =\n         (_func_int_Walker_ptr_Select_ptr *)(*(int *)(puVar10 + 0xaa7d0) + -0x5390);\n    (aVar1.pNC)->ncFlags = uVar3;\n    WStack_98.pParse = pPVar5;\n    WStack_98.u = aVar1;\n    if (0 < iVar2) {\n      unaff_s6 = zFormat + 1;\n      iVar9 = 0;\n      unaff_s5 = &WStack_98;\n      puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = pEVar6;\n        unaff_s0 = (Expr *)*unaff_s6;\n        if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }\n        iVar9 = iVar9 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        pEVar6 = unaff_s1;\n      } while (iVar9 < iVar2);\n      uVar3 = (aVar1.pNC)->ncFlags;\n    }\n    unaff_s1 = (Expr *)((uint)pEVar6 | uVar3);\n    (aVar1.pNC)->ncFlags = (int)unaff_s1;\n    iVar2 = 0;\n    unaff_s2 = zFormat;\n  }" else (compound_statement "{\n    pPVar5 = (aVar1.pNC)->pParse;\n    WStack_98.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar10 + 0xaa7d0) + 0xc94)\n    ;\n    iVar2 = *zFormat;\n    unaff_s4 = 0xffff6fef;\n    WStack_98.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    uVar3 = (aVar1.pNC)->ncFlags & 0xffff6fef;\n    pEVar6 = (Expr *)((aVar1.pNC)->ncFlags & 0x9010);\n    WStack_98.xSelectCallback =\n         (_func_int_Walker_ptr_Select_ptr *)(*(int *)(puVar10 + 0xaa7d0) + -0x5390);\n    (aVar1.pNC)->ncFlags = uVar3;\n    WStack_98.pParse = pPVar5;\n    WStack_98.u = aVar1;\n    if (0 < iVar2) {\n      unaff_s6 = zFormat + 1;\n      iVar9 = 0;\n      unaff_s5 = &WStack_98;\n      puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = pEVar6;\n        unaff_s0 = (Expr *)*unaff_s6;\n        if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }\n        iVar9 = iVar9 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        pEVar6 = unaff_s1;\n      } while (iVar9 < iVar2);\n      uVar3 = (aVar1.pNC)->ncFlags;\n    }\n    unaff_s1 = (Expr *)((uint)pEVar6 | uVar3);\n    (aVar1.pNC)->ncFlags = (int)unaff_s1;\n    iVar2 = 0;\n    unaff_s2 = zFormat;\n  }" { (expression_statement "pPVar5 = (aVar1.pNC)->pParse;" (assignment_expression "pPVar5 = (aVar1.pNC)->pParse" identifier = (field_expression "(aVar1.pNC)->pParse" (parenthesized_expression "(aVar1.pNC)" ( (field_expression "aVar1.pNC" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "WStack_98.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar10 + 0xaa7d0) + 0xc94)\n    ;" (assignment_expression "WStack_98.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar10 + 0xaa7d0) + 0xc94)" (field_expression "WStack_98.xExprCallback" identifier . field_identifier) = (cast_expression "(_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar10 + 0xaa7d0) + 0xc94)" ( (type_descriptor "_func_int_Walker_ptr_Expr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0xaa7d0) + 0xc94)" ( (binary_expression "*(int *)(puVar10 + 0xaa7d0) + 0xc94" (pointer_expression "*(int *)(puVar10 + 0xaa7d0)" * (cast_expression "(int *)(puVar10 + 0xaa7d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xaa7d0)" ( (binary_expression "puVar10 + 0xaa7d0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar2 = *zFormat;" (assignment_expression "iVar2 = *zFormat" identifier = (pointer_expression "*zFormat" * identifier)) ;) (expression_statement "unaff_s4 = 0xffff6fef;" (assignment_expression "unaff_s4 = 0xffff6fef" identifier = number_literal) ;) (expression_statement "WStack_98.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;" (assignment_expression "WStack_98.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0" (field_expression "WStack_98.xSelectCallback2" identifier . field_identifier) = (cast_expression "(_func_void_Walker_ptr_Select_ptr *)0x0" ( (type_descriptor "_func_void_Walker_ptr_Select_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar3 = (aVar1.pNC)->ncFlags & 0xffff6fef;" (assignment_expression "uVar3 = (aVar1.pNC)->ncFlags & 0xffff6fef" identifier = (binary_expression "(aVar1.pNC)->ncFlags & 0xffff6fef" (field_expression "(aVar1.pNC)->ncFlags" (parenthesized_expression "(aVar1.pNC)" ( (field_expression "aVar1.pNC" identifier . field_identifier) )) -> field_identifier) & number_literal)) ;) (expression_statement "pEVar6 = (Expr *)((aVar1.pNC)->ncFlags & 0x9010);" (assignment_expression "pEVar6 = (Expr *)((aVar1.pNC)->ncFlags & 0x9010)" identifier = (cast_expression "(Expr *)((aVar1.pNC)->ncFlags & 0x9010)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((aVar1.pNC)->ncFlags & 0x9010)" ( (binary_expression "(aVar1.pNC)->ncFlags & 0x9010" (field_expression "(aVar1.pNC)->ncFlags" (parenthesized_expression "(aVar1.pNC)" ( (field_expression "aVar1.pNC" identifier . field_identifier) )) -> field_identifier) & number_literal) )))) ;) (expression_statement "WStack_98.xSelectCallback =\n         (_func_int_Walker_ptr_Select_ptr *)(*(int *)(puVar10 + 0xaa7d0) + -0x5390);" (assignment_expression "WStack_98.xSelectCallback =\n         (_func_int_Walker_ptr_Select_ptr *)(*(int *)(puVar10 + 0xaa7d0) + -0x5390)" (field_expression "WStack_98.xSelectCallback" identifier . field_identifier) = (cast_expression "(_func_int_Walker_ptr_Select_ptr *)(*(int *)(puVar10 + 0xaa7d0) + -0x5390)" ( (type_descriptor "_func_int_Walker_ptr_Select_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0xaa7d0) + -0x5390)" ( (binary_expression "*(int *)(puVar10 + 0xaa7d0) + -0x5390" (pointer_expression "*(int *)(puVar10 + 0xaa7d0)" * (cast_expression "(int *)(puVar10 + 0xaa7d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xaa7d0)" ( (binary_expression "puVar10 + 0xaa7d0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(aVar1.pNC)->ncFlags = uVar3;" (assignment_expression "(aVar1.pNC)->ncFlags = uVar3" (field_expression "(aVar1.pNC)->ncFlags" (parenthesized_expression "(aVar1.pNC)" ( (field_expression "aVar1.pNC" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "WStack_98.pParse = pPVar5;" (assignment_expression "WStack_98.pParse = pPVar5" (field_expression "WStack_98.pParse" identifier . field_identifier) = identifier) ;) (expression_statement "WStack_98.u = aVar1;" (assignment_expression "WStack_98.u = aVar1" (field_expression "WStack_98.u" identifier . field_identifier) = identifier) ;) (if_statement "if (0 < iVar2) {\n      unaff_s6 = zFormat + 1;\n      iVar9 = 0;\n      unaff_s5 = &WStack_98;\n      puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = pEVar6;\n        unaff_s0 = (Expr *)*unaff_s6;\n        if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }\n        iVar9 = iVar9 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        pEVar6 = unaff_s1;\n      } while (iVar9 < iVar2);\n      uVar3 = (aVar1.pNC)->ncFlags;\n    }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n      unaff_s6 = zFormat + 1;\n      iVar9 = 0;\n      unaff_s5 = &WStack_98;\n      puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = pEVar6;\n        unaff_s0 = (Expr *)*unaff_s6;\n        if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }\n        iVar9 = iVar9 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        pEVar6 = unaff_s1;\n      } while (iVar9 < iVar2);\n      uVar3 = (aVar1.pNC)->ncFlags;\n    }" { (expression_statement "unaff_s6 = zFormat + 1;" (assignment_expression "unaff_s6 = zFormat + 1" identifier = (binary_expression "zFormat + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = &WStack_98;" (assignment_expression "unaff_s5 = &WStack_98" identifier = (pointer_expression "&WStack_98" & identifier)) ;) (expression_statement "puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88);" (assignment_expression "puVar7 = (undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88)" identifier = (cast_expression "(undefined *)(*(int *)(puVar10 + 0xaa7c0) + -0xf88)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0xaa7c0) + -0xf88)" ( (binary_expression "*(int *)(puVar10 + 0xaa7c0) + -0xf88" (pointer_expression "*(int *)(puVar10 + 0xaa7c0)" * (cast_expression "(int *)(puVar10 + 0xaa7c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xaa7c0)" ( (binary_expression "puVar10 + 0xaa7c0" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        unaff_s1 = pEVar6;\n        unaff_s0 = (Expr *)*unaff_s6;\n        if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }\n        iVar9 = iVar9 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        pEVar6 = unaff_s1;\n      } while (iVar9 < iVar2);" do (compound_statement "{\n        unaff_s1 = pEVar6;\n        unaff_s0 = (Expr *)*unaff_s6;\n        if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }\n        iVar9 = iVar9 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        pEVar6 = unaff_s1;\n      }" { (expression_statement "unaff_s1 = pEVar6;" (assignment_expression "unaff_s1 = pEVar6" identifier = identifier) ;) (expression_statement "unaff_s0 = (Expr *)*unaff_s6;" (assignment_expression "unaff_s0 = (Expr *)*unaff_s6" identifier = (cast_expression "(Expr *)*unaff_s6" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s6" * identifier))) ;) (if_statement "if (unaff_s0 != (Expr *)0x0) {\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }" if (parenthesized_expression "(unaff_s0 != (Expr *)0x0)" ( (binary_expression "unaff_s0 != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          in_a2 = (WStack_98.pParse)->db->aLimit[3];\n          iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;\n          (WStack_98.pParse)->nHeight = iVar2;\n          if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }\n          walkExpr(unaff_s5,unaff_s0);\n          in_a2 = unaff_s0->nHeight;\n          uVar3 = (aVar1.pNC)->ncFlags;\n          pPVar5 = (Parse *)(uVar3 & 0x9010);\n          (WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;\n          if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }\n          iVar2 = 2;\n          unaff_s2 = zFormat;\n          pEVar12 = pEStack_a8;\n          if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;\n          iVar2 = *zFormat;\n        }" { (expression_statement "in_a2 = (WStack_98.pParse)->db->aLimit[3];" (assignment_expression "in_a2 = (WStack_98.pParse)->db->aLimit[3]" identifier = (subscript_expression "(WStack_98.pParse)->db->aLimit[3]" (field_expression "(WStack_98.pParse)->db->aLimit" (field_expression "(WStack_98.pParse)->db" (parenthesized_expression "(WStack_98.pParse)" ( (field_expression "WStack_98.pParse" identifier . field_identifier) )) -> field_identifier) -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight;" (assignment_expression "iVar2 = (WStack_98.pParse)->nHeight + unaff_s0->nHeight" identifier = (binary_expression "(WStack_98.pParse)->nHeight + unaff_s0->nHeight" (field_expression "(WStack_98.pParse)->nHeight" (parenthesized_expression "(WStack_98.pParse)" ( (field_expression "WStack_98.pParse" identifier . field_identifier) )) -> field_identifier) + (field_expression "unaff_s0->nHeight" identifier -> field_identifier))) ;) (expression_statement "(WStack_98.pParse)->nHeight = iVar2;" (assignment_expression "(WStack_98.pParse)->nHeight = iVar2" (field_expression "(WStack_98.pParse)->nHeight" (parenthesized_expression "(WStack_98.pParse)" ( (field_expression "WStack_98.pParse" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (if_statement "if ((int)in_a2 < iVar2) {\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }" if (parenthesized_expression "((int)in_a2 < iVar2)" ( (binary_expression "(int)in_a2 < iVar2" (cast_expression "(int)in_a2" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n            pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);\n            sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);\n            iVar2 = 2;\n            unaff_s2 = zFormat;\n            pEVar12 = pEStack_a8;\n            goto LAB_0004ac98;\n          }" { (expression_statement "pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630);" (assignment_expression "pPVar5 = (Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630)" identifier = (cast_expression "(Parse *)(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630)" ( (binary_expression "*(int *)&pEVar12[-0x276].iRightJoinTable + 0x7630" (pointer_expression "*(int *)&pEVar12[-0x276].iRightJoinTable" * (cast_expression "(int *)&pEVar12[-0x276].iRightJoinTable" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar12[-0x276].iRightJoinTable" & (field_expression "pEVar12[-0x276].iRightJoinTable" (subscript_expression "pEVar12[-0x276]" identifier [ number_literal ]) . field_identifier)))) + number_literal) )))) ;) (expression_statement "sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5);" (call_expression "sqlite3ErrorMsg(WStack_98.pParse,(char *)pPVar5)" identifier (argument_list "(WStack_98.pParse,(char *)pPVar5)" ( (field_expression "WStack_98.pParse" identifier . field_identifier) , (cast_expression "(char *)pPVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (expression_statement "unaff_s2 = zFormat;" (assignment_expression "unaff_s2 = zFormat" identifier = identifier) ;) (expression_statement "pEVar12 = pEStack_a8;" (assignment_expression "pEVar12 = pEStack_a8" identifier = identifier) ;) (goto_statement "goto LAB_0004ac98;" goto statement_identifier ;) })) (expression_statement "walkExpr(unaff_s5,unaff_s0);" (call_expression "walkExpr(unaff_s5,unaff_s0)" identifier (argument_list "(unaff_s5,unaff_s0)" ( identifier , identifier ))) ;) (expression_statement "in_a2 = unaff_s0->nHeight;" (assignment_expression "in_a2 = unaff_s0->nHeight" identifier = (field_expression "unaff_s0->nHeight" identifier -> field_identifier)) ;) (expression_statement "uVar3 = (aVar1.pNC)->ncFlags;" (assignment_expression "uVar3 = (aVar1.pNC)->ncFlags" identifier = (field_expression "(aVar1.pNC)->ncFlags" (parenthesized_expression "(aVar1.pNC)" ( (field_expression "aVar1.pNC" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "pPVar5 = (Parse *)(uVar3 & 0x9010);" (assignment_expression "pPVar5 = (Parse *)(uVar3 & 0x9010)" identifier = (cast_expression "(Parse *)(uVar3 & 0x9010)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 & 0x9010)" ( (binary_expression "uVar3 & 0x9010" identifier & number_literal) )))) ;) (expression_statement "(WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2;" (assignment_expression "(WStack_98.pParse)->nHeight = (WStack_98.pParse)->nHeight - in_a2" (field_expression "(WStack_98.pParse)->nHeight" (parenthesized_expression "(WStack_98.pParse)" ( (field_expression "WStack_98.pParse" identifier . field_identifier) )) -> field_identifier) = (binary_expression "(WStack_98.pParse)->nHeight - in_a2" (field_expression "(WStack_98.pParse)->nHeight" (parenthesized_expression "(WStack_98.pParse)" ( (field_expression "WStack_98.pParse" identifier . field_identifier) )) -> field_identifier) - identifier)) ;) (if_statement "if (pPVar5 != (Parse *)0x0) {\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }" if (parenthesized_expression "(pPVar5 != (Parse *)0x0)" ( (binary_expression "pPVar5 != (Parse *)0x0" identifier != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            in_a2 = uVar3 & 0x8010;\n            unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);\n            unaff_s0->flags = unaff_s0->flags | in_a2;\n            (aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;\n          }" { (expression_statement "in_a2 = uVar3 & 0x8010;" (assignment_expression "in_a2 = uVar3 & 0x8010" identifier = (binary_expression "uVar3 & 0x8010" identifier & number_literal)) ;) (expression_statement "unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5);" (assignment_expression "unaff_s1 = (Expr *)((uint)unaff_s1 | (uint)pPVar5)" identifier = (cast_expression "(Expr *)((uint)unaff_s1 | (uint)pPVar5)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)unaff_s1 | (uint)pPVar5)" ( (binary_expression "(uint)unaff_s1 | (uint)pPVar5" (cast_expression "(uint)unaff_s1" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)pPVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "unaff_s0->flags = unaff_s0->flags | in_a2;" (assignment_expression "unaff_s0->flags = unaff_s0->flags | in_a2" (field_expression "unaff_s0->flags" identifier -> field_identifier) = (binary_expression "unaff_s0->flags | in_a2" (field_expression "unaff_s0->flags" identifier -> field_identifier) | identifier)) ;) (expression_statement "(aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef;" (assignment_expression "(aVar1.pNC)->ncFlags = uVar3 & 0xffff6fef" (field_expression "(aVar1.pNC)->ncFlags" (parenthesized_expression "(aVar1.pNC)" ( (field_expression "aVar1.pNC" identifier . field_identifier) )) -> field_identifier) = (binary_expression "uVar3 & 0xffff6fef" identifier & number_literal)) ;) })) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (expression_statement "unaff_s2 = zFormat;" (assignment_expression "unaff_s2 = zFormat" identifier = identifier) ;) (expression_statement "pEVar12 = pEStack_a8;" (assignment_expression "pEVar12 = pEStack_a8" identifier = identifier) ;) (if_statement "if ((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))\n          goto LAB_0004ac98;" if (parenthesized_expression "((0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr))" ( (binary_expression "(0 < (aVar1.pNC)->nErr) || (iVar2 = 2, 0 < (WStack_98.pParse)->nErr)" (parenthesized_expression "(0 < (aVar1.pNC)->nErr)" ( (binary_expression "0 < (aVar1.pNC)->nErr" number_literal < (field_expression "(aVar1.pNC)->nErr" (parenthesized_expression "(aVar1.pNC)" ( (field_expression "aVar1.pNC" identifier . field_identifier) )) -> field_identifier)) )) || (parenthesized_expression "(iVar2 = 2, 0 < (WStack_98.pParse)->nErr)" ( (comma_expression "iVar2 = 2, 0 < (WStack_98.pParse)->nErr" (assignment_expression "iVar2 = 2" identifier = number_literal) , (binary_expression "0 < (WStack_98.pParse)->nErr" number_literal < (field_expression "(WStack_98.pParse)->nErr" (parenthesized_expression "(WStack_98.pParse)" ( (field_expression "WStack_98.pParse" identifier . field_identifier) )) -> field_identifier))) ))) )) (goto_statement "goto LAB_0004ac98;" goto statement_identifier ;)) (expression_statement "iVar2 = *zFormat;" (assignment_expression "iVar2 = *zFormat" identifier = (pointer_expression "*zFormat" * identifier)) ;) })) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = unaff_s6 + 4;" (assignment_expression "unaff_s6 = unaff_s6 + 4" identifier = (binary_expression "unaff_s6 + 4" identifier + number_literal)) ;) (expression_statement "pEVar6 = unaff_s1;" (assignment_expression "pEVar6 = unaff_s1" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 < iVar2)" ( (binary_expression "iVar9 < iVar2" identifier < identifier) )) ;) (expression_statement "uVar3 = (aVar1.pNC)->ncFlags;" (assignment_expression "uVar3 = (aVar1.pNC)->ncFlags" identifier = (field_expression "(aVar1.pNC)->ncFlags" (parenthesized_expression "(aVar1.pNC)" ( (field_expression "aVar1.pNC" identifier . field_identifier) )) -> field_identifier)) ;) })) (expression_statement "unaff_s1 = (Expr *)((uint)pEVar6 | uVar3);" (assignment_expression "unaff_s1 = (Expr *)((uint)pEVar6 | uVar3)" identifier = (cast_expression "(Expr *)((uint)pEVar6 | uVar3)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar6 | uVar3)" ( (binary_expression "(uint)pEVar6 | uVar3" (cast_expression "(uint)pEVar6" ( (type_descriptor "uint" type_identifier) ) identifier) | identifier) )))) ;) (expression_statement "(aVar1.pNC)->ncFlags = (int)unaff_s1;" (assignment_expression "(aVar1.pNC)->ncFlags = (int)unaff_s1" (field_expression "(aVar1.pNC)->ncFlags" (parenthesized_expression "(aVar1.pNC)" ( (field_expression "aVar1.pNC" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "unaff_s2 = zFormat;" (assignment_expression "unaff_s2 = zFormat" identifier = identifier) ;) }))) (labeled_statement "LAB_0004ac98:\n  if (pPStack_7c == (Parse *)*piStack_9c) {\n    return iVar2;\n  }" statement_identifier : (if_statement "if (pPStack_7c == (Parse *)*piStack_9c) {\n    return iVar2;\n  }" if (parenthesized_expression "(pPStack_7c == (Parse *)*piStack_9c)" ( (binary_expression "pPStack_7c == (Parse *)*piStack_9c" identifier == (cast_expression "(Parse *)*piStack_9c" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piStack_9c" * identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) }))) (expression_statement "pAVar11 = pEVar12[-0x26a].pAggInfo;" (assignment_expression "pAVar11 = pEVar12[-0x26a].pAggInfo" identifier = (field_expression "pEVar12[-0x26a].pAggInfo" (subscript_expression "pEVar12[-0x26a]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pcVar13 = sqlite3ResolveSelfReference;" (assignment_expression "pcVar13 = sqlite3ResolveSelfReference" identifier = identifier) ;) (expression_statement "pPVar4 = pPStack_7c;" (assignment_expression "pPVar4 = pPStack_7c" identifier = identifier) ;) (expression_statement "(*(code *)pAVar11)();" (call_expression "(*(code *)pAVar11)()" (parenthesized_expression "(*(code *)pAVar11)" ( (pointer_expression "*(code *)pAVar11" * (cast_expression "(code *)pAVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pEVar12 = pEStack_a8;" (assignment_expression "pEVar12 = pEStack_a8" identifier = identifier) ;) (expression_statement "pAVar8 = pAVar11[0x30b8].aCol;" (assignment_expression "pAVar8 = pAVar11[0x30b8].aCol" identifier = (field_expression "pAVar11[0x30b8].aCol" (subscript_expression "pAVar11[0x30b8]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "NStack_150.pParse = (Parse *)0x0;" (assignment_expression "NStack_150.pParse = (Parse *)0x0" (field_expression "NStack_150.pParse" identifier . field_identifier) = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "NStack_150.pSrcList = (SrcList *)0x0;" (assignment_expression "NStack_150.pSrcList = (SrcList *)0x0" (field_expression "NStack_150.pSrcList" identifier . field_identifier) = (cast_expression "(SrcList *)0x0" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "NStack_150.uNC.pEList = (ExprList *)0x0;" (assignment_expression "NStack_150.uNC.pEList = (ExprList *)0x0" (field_expression "NStack_150.uNC.pEList" (field_expression "NStack_150.uNC" identifier . field_identifier) . field_identifier) = (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "NStack_150.pNext = (NameContext *)0x0;" (assignment_expression "NStack_150.pNext = (NameContext *)0x0" (field_expression "NStack_150.pNext" identifier . field_identifier) = (cast_expression "(NameContext *)0x0" ( (type_descriptor "NameContext *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "NStack_150.nRef = 0;" (assignment_expression "NStack_150.nRef = 0" (field_expression "NStack_150.nRef" identifier . field_identifier) = number_literal) ;) (expression_statement "NStack_150.nErr = 0;" (assignment_expression "NStack_150.nErr = 0" (field_expression "NStack_150.nErr" identifier . field_identifier) = number_literal) ;) (expression_statement "NStack_150.ncFlags = 0;" (assignment_expression "NStack_150.ncFlags = 0" (field_expression "NStack_150.ncFlags" identifier . field_identifier) = number_literal) ;) (expression_statement "NStack_150.pWinSelect = (Select *)0x0;" (assignment_expression "NStack_150.pWinSelect = (Select *)0x0" (field_expression "NStack_150.pWinSelect" identifier . field_identifier) = (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPStack_dc = (Parse *)pAVar8->pTab;" (assignment_expression "pPStack_dc = (Parse *)pAVar8->pTab" identifier = (cast_expression "(Parse *)pAVar8->pTab" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pAVar8->pTab" identifier -> field_identifier))) ;) (expression_statement "pEStack_d8 = unaff_s0;" (assignment_expression "pEStack_d8 = unaff_s0" identifier = identifier) ;) (expression_statement "pEStack_d4 = unaff_s1;" (assignment_expression "pEStack_d4 = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_d0 = unaff_s2;" (assignment_expression "piStack_d0 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_cc = puVar7;" (assignment_expression "puStack_cc = puVar7" identifier = identifier) ;) (expression_statement "uStack_c8 = unaff_s4;" (assignment_expression "uStack_c8 = unaff_s4" identifier = identifier) ;) (expression_statement "pWStack_c4 = unaff_s5;" (assignment_expression "pWStack_c4 = unaff_s5" identifier = identifier) ;) (expression_statement "piStack_c0 = unaff_s6;" (assignment_expression "piStack_c0 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_bc = pcVar13;" (assignment_expression "pcStack_bc = pcVar13" identifier = identifier) ;) (expression_statement "NStack_150.pSrcList = (SrcList *)(*(code *)pAVar11[0x30b3].aCol)(auStack_130,0,0x50);" (assignment_expression "NStack_150.pSrcList = (SrcList *)(*(code *)pAVar11[0x30b3].aCol)(auStack_130,0,0x50)" (field_expression "NStack_150.pSrcList" identifier . field_identifier) = (cast_expression "(SrcList *)(*(code *)pAVar11[0x30b3].aCol)(auStack_130,0,0x50)" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)pAVar11[0x30b3].aCol)(auStack_130,0,0x50)" (parenthesized_expression "(*(code *)pAVar11[0x30b3].aCol)" ( (pointer_expression "*(code *)pAVar11[0x30b3].aCol" * (cast_expression "(code *)pAVar11[0x30b3].aCol" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pAVar11[0x30b3].aCol" (subscript_expression "pAVar11[0x30b3]" identifier [ number_literal ]) . field_identifier))) )) (argument_list "(auStack_130,0,0x50)" ( identifier , number_literal , number_literal ))))) ;) (if_statement "if (pPVar5 != (Parse *)0x0) {\n    psStack_120 = pPVar5->db;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    pPStack_118 = pPVar5;\n    if ((Schema *)(pPVar5->constraintName).z != pPVar4->db->aDb[1].pSchema) {\n      in_a2 = in_a2 | 0x40000;\n    }\n  }" if (parenthesized_expression "(pPVar5 != (Parse *)0x0)" ( (binary_expression "pPVar5 != (Parse *)0x0" identifier != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    psStack_120 = pPVar5->db;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    pPStack_118 = pPVar5;\n    if ((Schema *)(pPVar5->constraintName).z != pPVar4->db->aDb[1].pSchema) {\n      in_a2 = in_a2 | 0x40000;\n    }\n  }" { (expression_statement "psStack_120 = pPVar5->db;" (assignment_expression "psStack_120 = pPVar5->db" identifier = (field_expression "pPVar5->db" identifier -> field_identifier)) ;) (expression_statement "auStack_130[0] = 1;" (assignment_expression "auStack_130[0] = 1" (subscript_expression "auStack_130[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_100 = 0xffffffff;" (assignment_expression "uStack_100 = 0xffffffff" identifier = number_literal) ;) (expression_statement "pPStack_118 = pPVar5;" (assignment_expression "pPStack_118 = pPVar5" identifier = identifier) ;) (if_statement "if ((Schema *)(pPVar5->constraintName).z != pPVar4->db->aDb[1].pSchema) {\n      in_a2 = in_a2 | 0x40000;\n    }" if (parenthesized_expression "((Schema *)(pPVar5->constraintName).z != pPVar4->db->aDb[1].pSchema)" ( (binary_expression "(Schema *)(pPVar5->constraintName).z != pPVar4->db->aDb[1].pSchema" (cast_expression "(Schema *)(pPVar5->constraintName).z" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pPVar5->constraintName).z" (parenthesized_expression "(pPVar5->constraintName)" ( (field_expression "pPVar5->constraintName" identifier -> field_identifier) )) . field_identifier)) != (field_expression "pPVar4->db->aDb[1].pSchema" (subscript_expression "pPVar4->db->aDb[1]" (field_expression "pPVar4->db->aDb" (field_expression "pPVar4->db" identifier -> field_identifier) -> field_identifier) [ number_literal ]) . field_identifier)) )) (compound_statement "{\n      in_a2 = in_a2 | 0x40000;\n    }" { (expression_statement "in_a2 = in_a2 | 0x40000;" (assignment_expression "in_a2 = in_a2 | 0x40000" identifier = (binary_expression "in_a2 | 0x40000" identifier | number_literal)) ;) })) })) (expression_statement "NStack_150.ncFlags = in_a2 | 0x10000;" (assignment_expression "NStack_150.ncFlags = in_a2 | 0x10000" (field_expression "NStack_150.ncFlags" identifier . field_identifier) = (binary_expression "in_a2 | 0x10000" identifier | number_literal)) ;) (expression_statement "NStack_150.pParse = pPVar4;" (assignment_expression "NStack_150.pParse = pPVar4" (field_expression "NStack_150.pParse" identifier . field_identifier) = identifier) ;) (expression_statement "iVar2 = sqlite3ResolveExprNames(&NStack_150,in_a3);" (assignment_expression "iVar2 = sqlite3ResolveExprNames(&NStack_150,in_a3)" identifier = (call_expression "sqlite3ResolveExprNames(&NStack_150,in_a3)" identifier (argument_list "(&NStack_150,in_a3)" ( (pointer_expression "&NStack_150" & identifier) , identifier )))) ;) (if_statement "if ((iVar2 == 0) && (pEVar12 != (Expr *)0x0)) {\n    iVar2 = sqlite3ResolveExprListNames(&NStack_150,(ExprList *)pEVar12);\n    in_a3 = pEVar12;\n  }" if (parenthesized_expression "((iVar2 == 0) && (pEVar12 != (Expr *)0x0))" ( (binary_expression "(iVar2 == 0) && (pEVar12 != (Expr *)0x0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(pEVar12 != (Expr *)0x0)" ( (binary_expression "pEVar12 != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    iVar2 = sqlite3ResolveExprListNames(&NStack_150,(ExprList *)pEVar12);\n    in_a3 = pEVar12;\n  }" { (expression_statement "iVar2 = sqlite3ResolveExprListNames(&NStack_150,(ExprList *)pEVar12);" (assignment_expression "iVar2 = sqlite3ResolveExprListNames(&NStack_150,(ExprList *)pEVar12)" identifier = (call_expression "sqlite3ResolveExprListNames(&NStack_150,(ExprList *)pEVar12)" identifier (argument_list "(&NStack_150,(ExprList *)pEVar12)" ( (pointer_expression "&NStack_150" & identifier) , (cast_expression "(ExprList *)pEVar12" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "in_a3 = pEVar12;" (assignment_expression "in_a3 = pEVar12" identifier = identifier) ;) })) (if_statement "if (pPStack_dc == (Parse *)pAVar8->pTab) {\n    return iVar2;\n  }" if (parenthesized_expression "(pPStack_dc == (Parse *)pAVar8->pTab)" ( (binary_expression "pPStack_dc == (Parse *)pAVar8->pTab" identifier == (cast_expression "(Parse *)pAVar8->pTab" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pAVar8->pTab" identifier -> field_identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar13 = (code *)pAVar11[0x30b7].nFunc;" (assignment_expression "pcVar13 = (code *)pAVar11[0x30b7].nFunc" identifier = (cast_expression "(code *)pAVar11[0x30b7].nFunc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pAVar11[0x30b7].nFunc" (subscript_expression "pAVar11[0x30b7]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pPVar5 = pPStack_dc;" (assignment_expression "pPVar5 = pPStack_dc" identifier = identifier) ;) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "exprSetHeight(in_a3);" (call_expression "exprSetHeight(in_a3)" identifier (argument_list "(in_a3)" ( identifier ))) ;) (expression_statement "uVar3 = (uint)(pPVar5->db->aLimit[3] < in_a3->nHeight);" (assignment_expression "uVar3 = (uint)(pPVar5->db->aLimit[3] < in_a3->nHeight)" identifier = (call_expression "(uint)(pPVar5->db->aLimit[3] < in_a3->nHeight)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pPVar5->db->aLimit[3] < in_a3->nHeight)" ( (binary_expression "pPVar5->db->aLimit[3] < in_a3->nHeight" (subscript_expression "pPVar5->db->aLimit[3]" (field_expression "pPVar5->db->aLimit" (field_expression "pPVar5->db" identifier -> field_identifier) -> field_identifier) [ number_literal ]) < (field_expression "in_a3->nHeight" identifier -> field_identifier)) )))) ;) (if_statement "if (uVar3 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "sqlite3ErrorMsg(pPVar5,(char *)(*(int *)(pcVar13 + 0xaa45c) + 0x7630));" (call_expression "sqlite3ErrorMsg(pPVar5,(char *)(*(int *)(pcVar13 + 0xaa45c) + 0x7630))" identifier (argument_list "(pPVar5,(char *)(*(int *)(pcVar13 + 0xaa45c) + 0x7630))" ( identifier , (cast_expression "(char *)(*(int *)(pcVar13 + 0xaa45c) + 0x7630)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xaa45c) + 0x7630)" ( (binary_expression "*(int *)(pcVar13 + 0xaa45c) + 0x7630" (pointer_expression "*(int *)(pcVar13 + 0xaa45c)" * (cast_expression "(int *)(pcVar13 + 0xaa45c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xaa45c)" ( (binary_expression "pcVar13 + 0xaa45c" identifier + number_literal) )))) + number_literal) ))) ))) ;) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit "uint FUN_0004a9d4(int *param_1,uint param_2,uint param_3,undefined *param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined *puVar8;\n  int *unaff_s0;\n  uint unaff_s1;\n  int *unaff_s2;\n  undefined *puVar9;\n  int *piVar10;\n  undefined4 unaff_s4;\n  int **unaff_s5;\n  int *unaff_s6;\n  int iVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int *piStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  undefined4 uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  undefined4 auStack_130 [4];\n  int iStack_120;\n  int *piStack_118;\n  undefined4 uStack_100;\n  int *piStack_dc;\n  int *piStack_d8;\n  uint uStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  int **ppiStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  undefined4 *puStack_9c;\n  int *piStack_98;\n  int iStack_94;\n  int iStack_90;\n  undefined4 uStack_8c;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  uint uStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  int *local_38;\n  undefined *local_34;\n  undefined *local_30;\n  undefined4 local_2c;\n  int *local_20;\n  undefined4 *local_1c;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }\n  if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }\n  puVar4 = local_1c;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar13 = puVar8 + 0xb2774;\n  puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);\n  puStack_6c = puVar9;\n  piStack_7c = (int *)*puStack_9c;\n  puStack_a8 = puVar13;\n  piStack_78 = unaff_s0;\n  uStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }\nLAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(puVar13 + -0x7d60);\n  pcVar14 = FUN_0004ad0c;\n  piVar6 = piStack_7c;\n  (*pcVar12)();\n  puVar8 = puStack_a8;\n  piVar10 = *(int **)(pcVar12 + 0xaa85c);\n  piStack_150 = (int *)0x0;\n  uStack_14c = 0;\n  uStack_148 = 0;\n  uStack_144 = 0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  piStack_dc = (int *)*piVar10;\n  piStack_d8 = unaff_s0;\n  uStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar9;\n  uStack_c8 = unaff_s4;\n  ppiStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar14;\n  uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);\n  if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }\n  uStack_138 = param_3 | 0x10000;\n  piStack_150 = piVar6;\n  uVar2 = FUN_0004a9d4(&piStack_150);\n  if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }\n  if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0xaa834);\n  piVar6 = piStack_dc;\n  (*pcVar12)();\n  FUN_0002fde8(param_4);\n  if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }\n  uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);\n  return uVar2;\n}\n\n" (function_definition "uint FUN_0004a9d4(int *param_1,uint param_2,uint param_3,undefined *param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined *puVar8;\n  int *unaff_s0;\n  uint unaff_s1;\n  int *unaff_s2;\n  undefined *puVar9;\n  int *piVar10;\n  undefined4 unaff_s4;\n  int **unaff_s5;\n  int *unaff_s6;\n  int iVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int *piStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  undefined4 uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  undefined4 auStack_130 [4];\n  int iStack_120;\n  int *piStack_118;\n  undefined4 uStack_100;\n  int *piStack_dc;\n  int *piStack_d8;\n  uint uStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  int **ppiStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  undefined4 *puStack_9c;\n  int *piStack_98;\n  int iStack_94;\n  int iStack_90;\n  undefined4 uStack_8c;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  uint uStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  int *local_38;\n  undefined *local_34;\n  undefined *local_30;\n  undefined4 local_2c;\n  int *local_20;\n  undefined4 *local_1c;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }\n  if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }\n  puVar4 = local_1c;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar13 = puVar8 + 0xb2774;\n  puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);\n  puStack_6c = puVar9;\n  piStack_7c = (int *)*puStack_9c;\n  puStack_a8 = puVar13;\n  piStack_78 = unaff_s0;\n  uStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }\nLAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(puVar13 + -0x7d60);\n  pcVar14 = FUN_0004ad0c;\n  piVar6 = piStack_7c;\n  (*pcVar12)();\n  puVar8 = puStack_a8;\n  piVar10 = *(int **)(pcVar12 + 0xaa85c);\n  piStack_150 = (int *)0x0;\n  uStack_14c = 0;\n  uStack_148 = 0;\n  uStack_144 = 0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  piStack_dc = (int *)*piVar10;\n  piStack_d8 = unaff_s0;\n  uStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar9;\n  uStack_c8 = unaff_s4;\n  ppiStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar14;\n  uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);\n  if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }\n  uStack_138 = param_3 | 0x10000;\n  piStack_150 = piVar6;\n  uVar2 = FUN_0004a9d4(&piStack_150);\n  if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }\n  if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0xaa834);\n  piVar6 = piStack_dc;\n  (*pcVar12)();\n  FUN_0002fde8(param_4);\n  if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }\n  uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);\n  return uVar2;\n}" type_identifier (function_declarator "FUN_0004a9d4(int *param_1,uint param_2,uint param_3,undefined *param_4)" identifier (parameter_list "(int *param_1,uint param_2,uint param_3,undefined *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined *puVar8;\n  int *unaff_s0;\n  uint unaff_s1;\n  int *unaff_s2;\n  undefined *puVar9;\n  int *piVar10;\n  undefined4 unaff_s4;\n  int **unaff_s5;\n  int *unaff_s6;\n  int iVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int *piStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  undefined4 uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  undefined4 auStack_130 [4];\n  int iStack_120;\n  int *piStack_118;\n  undefined4 uStack_100;\n  int *piStack_dc;\n  int *piStack_d8;\n  uint uStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  int **ppiStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  undefined4 *puStack_9c;\n  int *piStack_98;\n  int iStack_94;\n  int iStack_90;\n  undefined4 uStack_8c;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  uint uStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  int *local_38;\n  undefined *local_34;\n  undefined *local_30;\n  undefined4 local_2c;\n  int *local_20;\n  undefined4 *local_1c;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }\n  if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }\n  puVar4 = local_1c;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar13 = puVar8 + 0xb2774;\n  puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);\n  puStack_6c = puVar9;\n  piStack_7c = (int *)*puStack_9c;\n  puStack_a8 = puVar13;\n  piStack_78 = unaff_s0;\n  uStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }\nLAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(puVar13 + -0x7d60);\n  pcVar14 = FUN_0004ad0c;\n  piVar6 = piStack_7c;\n  (*pcVar12)();\n  puVar8 = puStack_a8;\n  piVar10 = *(int **)(pcVar12 + 0xaa85c);\n  piStack_150 = (int *)0x0;\n  uStack_14c = 0;\n  uStack_148 = 0;\n  uStack_144 = 0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  piStack_dc = (int *)*piVar10;\n  piStack_d8 = unaff_s0;\n  uStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar9;\n  uStack_c8 = unaff_s4;\n  ppiStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar14;\n  uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);\n  if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }\n  uStack_138 = param_3 | 0x10000;\n  piStack_150 = piVar6;\n  uVar2 = FUN_0004a9d4(&piStack_150);\n  if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }\n  if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0xaa834);\n  piVar6 = piStack_dc;\n  (*pcVar12)();\n  FUN_0002fde8(param_4);\n  if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }\n  uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);\n  return uVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *unaff_s0;" primitive_type (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined4 unaff_s4;" type_identifier identifier ;) (declaration "int **unaff_s5;" primitive_type (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier)) ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int *piStack_150;" primitive_type (pointer_declarator "*piStack_150" * identifier) ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "undefined4 uStack_148;" type_identifier identifier ;) (declaration "undefined4 uStack_144;" type_identifier identifier ;) (declaration "undefined4 uStack_140;" type_identifier identifier ;) (declaration "undefined4 uStack_13c;" type_identifier identifier ;) (declaration "uint uStack_138;" type_identifier identifier ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "undefined4 auStack_130 [4];" type_identifier (array_declarator "auStack_130 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_120;" primitive_type identifier ;) (declaration "int *piStack_118;" primitive_type (pointer_declarator "*piStack_118" * identifier) ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "int *piStack_dc;" primitive_type (pointer_declarator "*piStack_dc" * identifier) ;) (declaration "int *piStack_d8;" primitive_type (pointer_declarator "*piStack_d8" * identifier) ;) (declaration "uint uStack_d4;" type_identifier identifier ;) (declaration "int *piStack_d0;" primitive_type (pointer_declarator "*piStack_d0" * identifier) ;) (declaration "undefined *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (declaration "undefined4 uStack_c8;" type_identifier identifier ;) (declaration "int **ppiStack_c4;" primitive_type (pointer_declarator "**ppiStack_c4" * (pointer_declarator "*ppiStack_c4" * identifier)) ;) (declaration "int *piStack_c0;" primitive_type (pointer_declarator "*piStack_c0" * identifier) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "undefined *puStack_a8;" type_identifier (pointer_declarator "*puStack_a8" * identifier) ;) (declaration "undefined4 *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "int *piStack_98;" primitive_type (pointer_declarator "*piStack_98" * identifier) ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "undefined4 uStack_8c;" type_identifier identifier ;) (declaration "undefined4 *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "int *piStack_7c;" primitive_type (pointer_declarator "*piStack_7c" * identifier) ;) (declaration "int *piStack_78;" primitive_type (pointer_declarator "*piStack_78" * identifier) ;) (declaration "uint uStack_74;" type_identifier identifier ;) (declaration "int *piStack_70;" primitive_type (pointer_declarator "*piStack_70" * identifier) ;) (declaration "undefined *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "undefined4 *local_1c;" type_identifier (pointer_declarator "*local_1c" * identifier) ;) (expression_statement "puVar9 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar9 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000f5568" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000f5568" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }" else (compound_statement "{\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }" { (expression_statement "local_38 = (int *)*param_1;" (assignment_expression "local_38 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "param_4 = *(undefined **)(param_2 + 0x18);" (assignment_expression "param_4 = *(undefined **)(param_2 + 0x18)" identifier = (pointer_expression "*(undefined **)(param_2 + 0x18)" * (cast_expression "(undefined **)(param_2 + 0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_34 = PTR_LAB_000f52fc + 0xc94;" (assignment_expression "local_34 = PTR_LAB_000f52fc + 0xc94" identifier = (binary_expression "PTR_LAB_000f52fc + 0xc94" identifier + number_literal)) ;) (expression_statement "unaff_s2 = (int *)param_1[6];" (assignment_expression "unaff_s2 = (int *)param_1[6]" identifier = (cast_expression "(int *)param_1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (expression_statement "iVar1 = local_38[0x35];" (assignment_expression "iVar1 = local_38[0x35]" identifier = (subscript_expression "local_38[0x35]" identifier [ number_literal ])) ;) (expression_statement "param_3 = *(uint *)(*local_38 + 0x78);" (assignment_expression "param_3 = *(uint *)(*local_38 + 0x78)" identifier = (pointer_expression "*(uint *)(*local_38 + 0x78)" * (cast_expression "(uint *)(*local_38 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_38 + 0x78)" ( (binary_expression "*local_38 + 0x78" (pointer_expression "*local_38" * identifier) + number_literal) ))))) ;) (expression_statement "local_30 = PTR_LAB_000f52fc + -0x5390;" (assignment_expression "local_30 = PTR_LAB_000f52fc + -0x5390" identifier = (binary_expression "PTR_LAB_000f52fc + -0x5390" identifier + number_literal)) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "param_1[6] = (uint)unaff_s2 & 0xffff6fef;" (assignment_expression "param_1[6] = (uint)unaff_s2 & 0xffff6fef" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "(uint)unaff_s2 & 0xffff6fef" (cast_expression "(uint)unaff_s2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "local_38[0x35] = (int)(param_4 + iVar1);" (assignment_expression "local_38[0x35] = (int)(param_4 + iVar1)" (subscript_expression "local_38[0x35]" identifier [ number_literal ]) = (cast_expression "(int)(param_4 + iVar1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_4 + iVar1)" ( (binary_expression "param_4 + iVar1" identifier + identifier) )))) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (expression_statement "unaff_s1 = param_2;" (assignment_expression "unaff_s1 = param_2" identifier = identifier) ;) (expression_statement "local_20 = param_1;" (assignment_expression "local_20 = param_1" identifier = identifier) ;) (if_statement "if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }" if (parenthesized_expression "((int)param_3 < (int)(param_4 + iVar1))" ( (binary_expression "(int)param_3 < (int)(param_4 + iVar1)" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(param_4 + iVar1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_4 + iVar1)" ( (binary_expression "param_4 + iVar1" identifier + identifier) )))) )) (compound_statement "{\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }" { (expression_statement "piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);" (assignment_expression "piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630)" identifier = (cast_expression "(int *)(PTR_LAB_000f52cc + 0x7630)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52cc + 0x7630)" ( (binary_expression "PTR_LAB_000f52cc + 0x7630" identifier + number_literal) )))) ;) (expression_statement "FUN_00049e28();" (call_expression "FUN_00049e28()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }" else (compound_statement "{\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }" { (expression_statement "FUN_0002f078(&local_38);" (call_expression "FUN_0002f078(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "piVar6 = (int *)param_1[6];" (assignment_expression "piVar6 = (int *)param_1[6]" identifier = (cast_expression "(int *)param_1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (expression_statement "param_4 = *(undefined **)(param_2 + 0x18);" (assignment_expression "param_4 = *(undefined **)(param_2 + 0x18)" identifier = (pointer_expression "*(undefined **)(param_2 + 0x18)" * (cast_expression "(undefined **)(param_2 + 0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_2 + 4);" (assignment_expression "uVar2 = *(uint *)(param_2 + 4)" identifier = (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "param_3 = param_1[5];" (assignment_expression "param_3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);" (assignment_expression "unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6)" identifier = (cast_expression "(int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)unaff_s2 & 0x9010 | (uint)piVar6)" ( (binary_expression "(uint)unaff_s2 & 0x9010 | (uint)piVar6" (binary_expression "(uint)unaff_s2 & 0x9010" (cast_expression "(uint)unaff_s2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) | (cast_expression "(uint)piVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "local_38[0x35] = local_38[0x35] - (int)param_4;" (assignment_expression "local_38[0x35] = local_38[0x35] - (int)param_4" (subscript_expression "local_38[0x35]" identifier [ number_literal ]) = (binary_expression "local_38[0x35] - (int)param_4" (subscript_expression "local_38[0x35]" identifier [ number_literal ]) - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;" (assignment_expression "*(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010" (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = (binary_expression "uVar2 | (uint)piVar6 & 0x8010" identifier | (binary_expression "(uint)piVar6 & 0x8010" (cast_expression "(uint)piVar6" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "param_1[6] = (int)unaff_s2;" (assignment_expression "param_1[6] = (int)unaff_s2" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }" if (parenthesized_expression "((int)param_3 < 1)" ( (binary_expression "(int)param_3 < 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar2 = (uint)(0 < local_38[9]);\n      }" { (expression_statement "uVar2 = (uint)(0 < local_38[9]);" (assignment_expression "uVar2 = (uint)(0 < local_38[9])" identifier = (call_expression "(uint)(0 < local_38[9])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < local_38[9])" ( (binary_expression "0 < local_38[9]" number_literal < (subscript_expression "local_38[9]" identifier [ number_literal ])) )))) ;) }) (else_clause "else {\n        uVar2 = 1;\n      }" else (compound_statement "{\n        uVar2 = 1;\n      }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }))) }))) }))) (if_statement "if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_1c == *(undefined4 **)puVar9)" ( (binary_expression "local_1c == *(undefined4 **)puVar9" identifier == (pointer_expression "*(undefined4 **)puVar9" * (cast_expression "(undefined4 **)puVar9" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) })) (expression_statement "puVar4 = local_1c;" (assignment_expression "puVar4 = local_1c" identifier = identifier) ;) (expression_statement "puVar8 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar8 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar13 = puVar8 + 0xb2774;" (assignment_expression "puVar13 = puVar8 + 0xb2774" identifier = (binary_expression "puVar8 + 0xb2774" identifier + number_literal)) ;) (expression_statement "puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);" (assignment_expression "puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c)" identifier = (pointer_expression "*(undefined4 **)(puVar8 + 0xaaa3c)" * (cast_expression "(undefined4 **)(puVar8 + 0xaaa3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0xaaa3c)" ( (binary_expression "puVar8 + 0xaaa3c" identifier + number_literal) ))))) ;) (expression_statement "puStack_6c = puVar9;" (assignment_expression "puStack_6c = puVar9" identifier = identifier) ;) (expression_statement "piStack_7c = (int *)*puStack_9c;" (assignment_expression "piStack_7c = (int *)*puStack_9c" identifier = (cast_expression "(int *)*puStack_9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_9c" * identifier))) ;) (expression_statement "puStack_a8 = puVar13;" (assignment_expression "puStack_a8 = puVar13" identifier = identifier) ;) (expression_statement "piStack_78 = unaff_s0;" (assignment_expression "piStack_78 = unaff_s0" identifier = identifier) ;) (expression_statement "uStack_74 = unaff_s1;" (assignment_expression "uStack_74 = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_70 = unaff_s2;" (assignment_expression "piStack_70 = unaff_s2" identifier = identifier) ;) (if_statement "if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }" else (compound_statement "{\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }" { (expression_statement "piVar7 = (int *)*puVar4;" (assignment_expression "piVar7 = (int *)*puVar4" identifier = (cast_expression "(int *)*puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;" (assignment_expression "iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94" identifier = (binary_expression "*(int *)(puVar8 + 0xaa7d0) + 0xc94" (pointer_expression "*(int *)(puVar8 + 0xaa7d0)" * (cast_expression "(int *)(puVar8 + 0xaa7d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xaa7d0)" ( (binary_expression "puVar8 + 0xaa7d0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "unaff_s4 = 0xffff6fef;" (assignment_expression "unaff_s4 = 0xffff6fef" identifier = number_literal) ;) (expression_statement "uStack_8c = 0;" (assignment_expression "uStack_8c = 0" identifier = number_literal) ;) (expression_statement "uVar5 = puVar4[6] & 0xffff6fef;" (assignment_expression "uVar5 = puVar4[6] & 0xffff6fef" identifier = (binary_expression "puVar4[6] & 0xffff6fef" (subscript_expression "puVar4[6]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar2 = puVar4[6] & 0x9010;" (assignment_expression "uVar2 = puVar4[6] & 0x9010" identifier = (binary_expression "puVar4[6] & 0x9010" (subscript_expression "puVar4[6]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;" (assignment_expression "iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390" identifier = (binary_expression "*(int *)(puVar8 + 0xaa7d0) + -0x5390" (pointer_expression "*(int *)(puVar8 + 0xaa7d0)" * (cast_expression "(int *)(puVar8 + 0xaa7d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xaa7d0)" ( (binary_expression "puVar8 + 0xaa7d0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar4[6] = uVar5;" (assignment_expression "puVar4[6] = uVar5" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_98 = piVar7;" (assignment_expression "piStack_98 = piVar7" identifier = identifier) ;) (expression_statement "puStack_80 = puVar4;" (assignment_expression "puStack_80 = puVar4" identifier = identifier) ;) (if_statement "if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }" if (parenthesized_expression "(0 < iVar1)" ( (binary_expression "0 < iVar1" number_literal < identifier) )) (compound_statement "{\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }" { (expression_statement "unaff_s6 = piVar6 + 1;" (assignment_expression "unaff_s6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = &piStack_98;" (assignment_expression "unaff_s5 = &piStack_98" identifier = (pointer_expression "&piStack_98" & identifier)) ;) (expression_statement "puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);" (assignment_expression "puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88)" identifier = (cast_expression "(undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0xaa7c0) + -0xf88)" ( (binary_expression "*(int *)(puVar8 + 0xaa7c0) + -0xf88" (pointer_expression "*(int *)(puVar8 + 0xaa7c0)" * (cast_expression "(int *)(puVar8 + 0xaa7c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xaa7c0)" ( (binary_expression "puVar8 + 0xaa7c0" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);" do (compound_statement "{\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      }" { (expression_statement "unaff_s1 = uVar2;" (assignment_expression "unaff_s1 = uVar2" identifier = identifier) ;) (expression_statement "unaff_s0 = (int *)*unaff_s6;" (assignment_expression "unaff_s0 = (int *)*unaff_s6" identifier = (cast_expression "(int *)*unaff_s6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s6" * identifier))) ;) (if_statement "if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }" if (parenthesized_expression "(unaff_s0 != (int *)0x0)" ( (binary_expression "unaff_s0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }" { (expression_statement "iVar3 = unaff_s0[6];" (assignment_expression "iVar3 = unaff_s0[6]" identifier = (subscript_expression "unaff_s0[6]" identifier [ number_literal ])) ;) (expression_statement "iVar1 = piStack_98[0x35];" (assignment_expression "iVar1 = piStack_98[0x35]" identifier = (subscript_expression "piStack_98[0x35]" identifier [ number_literal ])) ;) (expression_statement "param_3 = *(uint *)(*piStack_98 + 0x78);" (assignment_expression "param_3 = *(uint *)(*piStack_98 + 0x78)" identifier = (pointer_expression "*(uint *)(*piStack_98 + 0x78)" * (cast_expression "(uint *)(*piStack_98 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piStack_98 + 0x78)" ( (binary_expression "*piStack_98 + 0x78" (pointer_expression "*piStack_98" * identifier) + number_literal) ))))) ;) (expression_statement "piStack_98[0x35] = iVar1 + iVar3;" (assignment_expression "piStack_98[0x35] = iVar1 + iVar3" (subscript_expression "piStack_98[0x35]" identifier [ number_literal ]) = (binary_expression "iVar1 + iVar3" identifier + identifier)) ;) (if_statement "if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }" if (parenthesized_expression "((int)param_3 < iVar1 + iVar3)" ( (binary_expression "(int)param_3 < iVar1 + iVar3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "iVar1 + iVar3" identifier + identifier)) )) (compound_statement "{\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }" { (expression_statement "piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);" (assignment_expression "piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630)" identifier = (cast_expression "(int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar13 + -0x7fd4) + 0x7630)" ( (binary_expression "*(int *)(puVar13 + -0x7fd4) + 0x7630" (pointer_expression "*(int *)(puVar13 + -0x7fd4)" * (cast_expression "(int *)(puVar13 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x7fd4)" ( (binary_expression "puVar13 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00049e28();" (call_expression "FUN_00049e28()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (expression_statement "unaff_s2 = piVar6;" (assignment_expression "unaff_s2 = piVar6" identifier = identifier) ;) (expression_statement "puVar13 = puStack_a8;" (assignment_expression "puVar13 = puStack_a8" identifier = identifier) ;) (goto_statement "goto LAB_0004ac98;" goto statement_identifier ;) })) (expression_statement "FUN_0002f078(unaff_s5,unaff_s0);" (call_expression "FUN_0002f078(unaff_s5,unaff_s0)" identifier (argument_list "(unaff_s5,unaff_s0)" ( identifier , identifier ))) ;) (expression_statement "param_3 = unaff_s0[6];" (assignment_expression "param_3 = unaff_s0[6]" identifier = (subscript_expression "unaff_s0[6]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar4[6];" (assignment_expression "uVar2 = puVar4[6]" identifier = (subscript_expression "puVar4[6]" identifier [ number_literal ])) ;) (expression_statement "piVar7 = (int *)(uVar2 & 0x9010);" (assignment_expression "piVar7 = (int *)(uVar2 & 0x9010)" identifier = (cast_expression "(int *)(uVar2 & 0x9010)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 & 0x9010)" ( (binary_expression "uVar2 & 0x9010" identifier & number_literal) )))) ;) (expression_statement "piStack_98[0x35] = piStack_98[0x35] - param_3;" (assignment_expression "piStack_98[0x35] = piStack_98[0x35] - param_3" (subscript_expression "piStack_98[0x35]" identifier [ number_literal ]) = (binary_expression "piStack_98[0x35] - param_3" (subscript_expression "piStack_98[0x35]" identifier [ number_literal ]) - identifier)) ;) (if_statement "if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }" { (expression_statement "param_3 = uVar2 & 0x8010;" (assignment_expression "param_3 = uVar2 & 0x8010" identifier = (binary_expression "uVar2 & 0x8010" identifier & number_literal)) ;) (expression_statement "unaff_s1 = unaff_s1 | (uint)piVar7;" (assignment_expression "unaff_s1 = unaff_s1 | (uint)piVar7" identifier = (binary_expression "unaff_s1 | (uint)piVar7" identifier | (cast_expression "(uint)piVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "unaff_s0[1] = unaff_s0[1] | param_3;" (assignment_expression "unaff_s0[1] = unaff_s0[1] | param_3" (subscript_expression "unaff_s0[1]" identifier [ number_literal ]) = (binary_expression "unaff_s0[1] | param_3" (subscript_expression "unaff_s0[1]" identifier [ number_literal ]) | identifier)) ;) (expression_statement "puVar4[6] = uVar2 & 0xffff6fef;" (assignment_expression "puVar4[6] = uVar2 & 0xffff6fef" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = (binary_expression "uVar2 & 0xffff6fef" identifier & number_literal)) ;) })) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (expression_statement "unaff_s2 = piVar6;" (assignment_expression "unaff_s2 = piVar6" identifier = identifier) ;) (expression_statement "puVar13 = puStack_a8;" (assignment_expression "puVar13 = puStack_a8" identifier = identifier) ;) (if_statement "if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;" if (parenthesized_expression "((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9]))" ( (binary_expression "(0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])" (parenthesized_expression "(0 < (int)puVar4[5])" ( (binary_expression "0 < (int)puVar4[5]" number_literal < (cast_expression "(int)puVar4[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar4[5]" identifier [ number_literal ]))) )) || (parenthesized_expression "(uVar2 = 2, 0 < piStack_98[9])" ( (comma_expression "uVar2 = 2, 0 < piStack_98[9]" (assignment_expression "uVar2 = 2" identifier = number_literal) , (binary_expression "0 < piStack_98[9]" number_literal < (subscript_expression "piStack_98[9]" identifier [ number_literal ]))) ))) )) (goto_statement "goto LAB_0004ac98;" goto statement_identifier ;)) (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = unaff_s6 + 4;" (assignment_expression "unaff_s6 = unaff_s6 + 4" identifier = (binary_expression "unaff_s6 + 4" identifier + number_literal)) ;) (expression_statement "uVar2 = unaff_s1;" (assignment_expression "uVar2 = unaff_s1" identifier = identifier) ;) }) while (parenthesized_expression "(iVar11 < iVar1)" ( (binary_expression "iVar11 < iVar1" identifier < identifier) )) ;) (expression_statement "uVar5 = puVar4[6];" (assignment_expression "uVar5 = puVar4[6]" identifier = (subscript_expression "puVar4[6]" identifier [ number_literal ])) ;) })) (expression_statement "unaff_s1 = uVar2 | uVar5;" (assignment_expression "unaff_s1 = uVar2 | uVar5" identifier = (binary_expression "uVar2 | uVar5" identifier | identifier)) ;) (expression_statement "puVar4[6] = unaff_s1;" (assignment_expression "puVar4[6] = unaff_s1" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "unaff_s2 = piVar6;" (assignment_expression "unaff_s2 = piVar6" identifier = identifier) ;) }))) (labeled_statement "LAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }" if (parenthesized_expression "(piStack_7c == (int *)*puStack_9c)" ( (binary_expression "piStack_7c == (int *)*puStack_9c" identifier == (cast_expression "(int *)*puStack_9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_9c" * identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "pcVar12 = *(code **)(puVar13 + -0x7d60);" (assignment_expression "pcVar12 = *(code **)(puVar13 + -0x7d60)" identifier = (pointer_expression "*(code **)(puVar13 + -0x7d60)" * (cast_expression "(code **)(puVar13 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x7d60)" ( (binary_expression "puVar13 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = FUN_0004ad0c;" (assignment_expression "pcVar14 = FUN_0004ad0c" identifier = identifier) ;) (expression_statement "piVar6 = piStack_7c;" (assignment_expression "piVar6 = piStack_7c" identifier = identifier) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar8 = puStack_a8;" (assignment_expression "puVar8 = puStack_a8" identifier = identifier) ;) (expression_statement "piVar10 = *(int **)(pcVar12 + 0xaa85c);" (assignment_expression "piVar10 = *(int **)(pcVar12 + 0xaa85c)" identifier = (pointer_expression "*(int **)(pcVar12 + 0xaa85c)" * (cast_expression "(int **)(pcVar12 + 0xaa85c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0xaa85c)" ( (binary_expression "pcVar12 + 0xaa85c" identifier + number_literal) ))))) ;) (expression_statement "piStack_150 = (int *)0x0;" (assignment_expression "piStack_150 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "uStack_148 = 0;" (assignment_expression "uStack_148 = 0" identifier = number_literal) ;) (expression_statement "uStack_144 = 0;" (assignment_expression "uStack_144 = 0" identifier = number_literal) ;) (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" identifier = number_literal) ;) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" identifier = number_literal) ;) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" identifier = number_literal) ;) (expression_statement "piStack_dc = (int *)*piVar10;" (assignment_expression "piStack_dc = (int *)*piVar10" identifier = (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) ;) (expression_statement "piStack_d8 = unaff_s0;" (assignment_expression "piStack_d8 = unaff_s0" identifier = identifier) ;) (expression_statement "uStack_d4 = unaff_s1;" (assignment_expression "uStack_d4 = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_d0 = unaff_s2;" (assignment_expression "piStack_d0 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_cc = puVar9;" (assignment_expression "puStack_cc = puVar9" identifier = identifier) ;) (expression_statement "uStack_c8 = unaff_s4;" (assignment_expression "uStack_c8 = unaff_s4" identifier = identifier) ;) (expression_statement "ppiStack_c4 = unaff_s5;" (assignment_expression "ppiStack_c4 = unaff_s5" identifier = identifier) ;) (expression_statement "piStack_c0 = unaff_s6;" (assignment_expression "piStack_c0 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_bc = pcVar14;" (assignment_expression "pcStack_bc = pcVar14" identifier = identifier) ;) (expression_statement "uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);" (assignment_expression "uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50)" identifier = (call_expression "(**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50)" (parenthesized_expression "(**(code **)(pcVar12 + 0xaa744))" ( (pointer_expression "**(code **)(pcVar12 + 0xaa744)" * (pointer_expression "*(code **)(pcVar12 + 0xaa744)" * (cast_expression "(code **)(pcVar12 + 0xaa744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0xaa744)" ( (binary_expression "pcVar12 + 0xaa744" identifier + number_literal) ))))) )) (argument_list "(auStack_130,0,0x50)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }" { (expression_statement "iStack_120 = *piVar7;" (assignment_expression "iStack_120 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "auStack_130[0] = 1;" (assignment_expression "auStack_130[0] = 1" (subscript_expression "auStack_130[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_100 = 0xffffffff;" (assignment_expression "uStack_100 = 0xffffffff" identifier = number_literal) ;) (expression_statement "piStack_118 = piVar7;" (assignment_expression "piStack_118 = piVar7" identifier = identifier) ;) (if_statement "if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }" if (parenthesized_expression "(piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c))" ( (binary_expression "piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)" (subscript_expression "piVar7[0x12]" identifier [ number_literal ]) != (pointer_expression "*(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar6 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(*piVar6 + 0x10) + 0x1c" (pointer_expression "*(int *)(*piVar6 + 0x10)" * (cast_expression "(int *)(*piVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0x10)" ( (binary_expression "*piVar6 + 0x10" (pointer_expression "*piVar6" * identifier) + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      param_3 = param_3 | 0x40000;\n    }" { (expression_statement "param_3 = param_3 | 0x40000;" (assignment_expression "param_3 = param_3 | 0x40000" identifier = (binary_expression "param_3 | 0x40000" identifier | number_literal)) ;) })) })) (expression_statement "uStack_138 = param_3 | 0x10000;" (assignment_expression "uStack_138 = param_3 | 0x10000" identifier = (binary_expression "param_3 | 0x10000" identifier | number_literal)) ;) (expression_statement "piStack_150 = piVar6;" (assignment_expression "piStack_150 = piVar6" identifier = identifier) ;) (expression_statement "uVar2 = FUN_0004a9d4(&piStack_150);" (assignment_expression "uVar2 = FUN_0004a9d4(&piStack_150)" identifier = (call_expression "FUN_0004a9d4(&piStack_150)" identifier (argument_list "(&piStack_150)" ( (pointer_expression "&piStack_150" & identifier) )))) ;) (if_statement "if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }" if (parenthesized_expression "((uVar2 == 0) && (puVar8 != (undefined *)0x0))" ( (binary_expression "(uVar2 == 0) && (puVar8 != (undefined *)0x0)" (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar8 != (undefined *)0x0)" ( (binary_expression "puVar8 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }" { (expression_statement "uVar2 = FUN_0004ab2c(&piStack_150);" (assignment_expression "uVar2 = FUN_0004ab2c(&piStack_150)" identifier = (call_expression "FUN_0004ab2c(&piStack_150)" identifier (argument_list "(&piStack_150)" ( (pointer_expression "&piStack_150" & identifier) )))) ;) (expression_statement "param_4 = puVar8;" (assignment_expression "param_4 = puVar8" identifier = identifier) ;) })) (if_statement "if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }" if (parenthesized_expression "(piStack_dc == (int *)*piVar10)" ( (binary_expression "piStack_dc == (int *)*piVar10" identifier == (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) })) (expression_statement "pcVar12 = *(code **)(pcVar12 + 0xaa834);" (assignment_expression "pcVar12 = *(code **)(pcVar12 + 0xaa834)" identifier = (pointer_expression "*(code **)(pcVar12 + 0xaa834)" * (cast_expression "(code **)(pcVar12 + 0xaa834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0xaa834)" ( (binary_expression "pcVar12 + 0xaa834" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = piStack_dc;" (assignment_expression "piVar6 = piStack_dc" identifier = identifier) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "FUN_0002fde8(param_4);" (call_expression "FUN_0002fde8(param_4)" identifier (argument_list "(param_4)" ( identifier ))) ;) (if_statement "if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }" if (parenthesized_expression "(*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78))" ( (binary_expression "*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)" (pointer_expression "*(int *)(param_4 + 0x18)" * (cast_expression "(int *)(param_4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(int *)(*piVar6 + 0x78)" * (cast_expression "(int *)(*piVar6 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0x78)" ( (binary_expression "*piVar6 + 0x78" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);" (assignment_expression "uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630)" identifier = (call_expression "FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630)" identifier (argument_list "(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630)" ( identifier , (binary_expression "*(int *)(pcVar12 + 0xaa45c) + 0x7630" (pointer_expression "*(int *)(pcVar12 + 0xaa45c)" * (cast_expression "(int *)(pcVar12 + 0xaa45c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0xaa45c)" ( (binary_expression "pcVar12 + 0xaa45c" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )) (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 ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (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) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (binary_expression IDENT + 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 (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) - 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 = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT & LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression LIT < (subscript_expression IDENT [ LIT ]))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * 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 = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) ;) (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 ( IDENT , LIT , 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (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 * IDENT) + LIT) )))) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & 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 { (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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (return_statement return IDENT ;) })))
(function_definition "uint FUN_0004a9d4(int *param_1,uint param_2,uint param_3,undefined *param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined *puVar8;\n  int *unaff_s0;\n  uint unaff_s1;\n  int *unaff_s2;\n  undefined *puVar9;\n  int *piVar10;\n  undefined4 unaff_s4;\n  int **unaff_s5;\n  int *unaff_s6;\n  int iVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int *piStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  undefined4 uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  undefined4 auStack_130 [4];\n  int iStack_120;\n  int *piStack_118;\n  undefined4 uStack_100;\n  int *piStack_dc;\n  int *piStack_d8;\n  uint uStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  int **ppiStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  undefined4 *puStack_9c;\n  int *piStack_98;\n  int iStack_94;\n  int iStack_90;\n  undefined4 uStack_8c;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  uint uStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  int *local_38;\n  undefined *local_34;\n  undefined *local_30;\n  undefined4 local_2c;\n  int *local_20;\n  undefined4 *local_1c;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }\n  if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }\n  puVar4 = local_1c;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar13 = puVar8 + 0xb2774;\n  puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);\n  puStack_6c = puVar9;\n  piStack_7c = (int *)*puStack_9c;\n  puStack_a8 = puVar13;\n  piStack_78 = unaff_s0;\n  uStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }\nLAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(puVar13 + -0x7d60);\n  pcVar14 = FUN_0004ad0c;\n  piVar6 = piStack_7c;\n  (*pcVar12)();\n  puVar8 = puStack_a8;\n  piVar10 = *(int **)(pcVar12 + 0xaa85c);\n  piStack_150 = (int *)0x0;\n  uStack_14c = 0;\n  uStack_148 = 0;\n  uStack_144 = 0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  piStack_dc = (int *)*piVar10;\n  piStack_d8 = unaff_s0;\n  uStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar9;\n  uStack_c8 = unaff_s4;\n  ppiStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar14;\n  uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);\n  if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }\n  uStack_138 = param_3 | 0x10000;\n  piStack_150 = piVar6;\n  uVar2 = FUN_0004a9d4(&piStack_150);\n  if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }\n  if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0xaa834);\n  piVar6 = piStack_dc;\n  (*pcVar12)();\n  FUN_0002fde8(param_4);\n  if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }\n  uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);\n  return uVar2;\n}" (type_identifier "uint") (function_declarator "FUN_0004a9d4(int *param_1,uint param_2,uint param_3,undefined *param_4)" (identifier "FUN_0004a9d4") (parameter_list "(int *param_1,uint param_2,uint param_3,undefined *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined *param_4" (type_identifier "undefined") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined *puVar8;\n  int *unaff_s0;\n  uint unaff_s1;\n  int *unaff_s2;\n  undefined *puVar9;\n  int *piVar10;\n  undefined4 unaff_s4;\n  int **unaff_s5;\n  int *unaff_s6;\n  int iVar11;\n  code *pcVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int *piStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  undefined4 uStack_13c;\n  uint uStack_138;\n  undefined4 uStack_134;\n  undefined4 auStack_130 [4];\n  int iStack_120;\n  int *piStack_118;\n  undefined4 uStack_100;\n  int *piStack_dc;\n  int *piStack_d8;\n  uint uStack_d4;\n  int *piStack_d0;\n  undefined *puStack_cc;\n  undefined4 uStack_c8;\n  int **ppiStack_c4;\n  int *piStack_c0;\n  code *pcStack_bc;\n  undefined *puStack_a8;\n  undefined4 *puStack_9c;\n  int *piStack_98;\n  int iStack_94;\n  int iStack_90;\n  undefined4 uStack_8c;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  uint uStack_74;\n  int *piStack_70;\n  undefined *puStack_6c;\n  int *local_38;\n  undefined *local_34;\n  undefined *local_30;\n  undefined4 local_2c;\n  int *local_20;\n  undefined4 *local_1c;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }\n  if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }\n  puVar4 = local_1c;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar13 = puVar8 + 0xb2774;\n  puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);\n  puStack_6c = puVar9;\n  piStack_7c = (int *)*puStack_9c;\n  puStack_a8 = puVar13;\n  piStack_78 = unaff_s0;\n  uStack_74 = unaff_s1;\n  piStack_70 = unaff_s2;\n  if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }\nLAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(puVar13 + -0x7d60);\n  pcVar14 = FUN_0004ad0c;\n  piVar6 = piStack_7c;\n  (*pcVar12)();\n  puVar8 = puStack_a8;\n  piVar10 = *(int **)(pcVar12 + 0xaa85c);\n  piStack_150 = (int *)0x0;\n  uStack_14c = 0;\n  uStack_148 = 0;\n  uStack_144 = 0;\n  uStack_140 = 0;\n  uStack_13c = 0;\n  uStack_138 = 0;\n  uStack_134 = 0;\n  piStack_dc = (int *)*piVar10;\n  piStack_d8 = unaff_s0;\n  uStack_d4 = unaff_s1;\n  piStack_d0 = unaff_s2;\n  puStack_cc = puVar9;\n  uStack_c8 = unaff_s4;\n  ppiStack_c4 = unaff_s5;\n  piStack_c0 = unaff_s6;\n  pcStack_bc = pcVar14;\n  uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);\n  if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }\n  uStack_138 = param_3 | 0x10000;\n  piStack_150 = piVar6;\n  uVar2 = FUN_0004a9d4(&piStack_150);\n  if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }\n  if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0xaa834);\n  piVar6 = piStack_dc;\n  (*pcVar12)();\n  FUN_0002fde8(param_4);\n  if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }\n  uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);\n  return uVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int *unaff_s0;" (primitive_type "int") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "uint unaff_s1;" (type_identifier "uint") (identifier "unaff_s1") (; ";")) (declaration "int *unaff_s2;" (primitive_type "int") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "undefined4 unaff_s4;" (type_identifier "undefined4") (identifier "unaff_s4") (; ";")) (declaration "int **unaff_s5;" (primitive_type "int") (pointer_declarator "**unaff_s5" (* "*") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5"))) (; ";")) (declaration "int *unaff_s6;" (primitive_type "int") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "int *piStack_150;" (primitive_type "int") (pointer_declarator "*piStack_150" (* "*") (identifier "piStack_150")) (; ";")) (declaration "undefined4 uStack_14c;" (type_identifier "undefined4") (identifier "uStack_14c") (; ";")) (declaration "undefined4 uStack_148;" (type_identifier "undefined4") (identifier "uStack_148") (; ";")) (declaration "undefined4 uStack_144;" (type_identifier "undefined4") (identifier "uStack_144") (; ";")) (declaration "undefined4 uStack_140;" (type_identifier "undefined4") (identifier "uStack_140") (; ";")) (declaration "undefined4 uStack_13c;" (type_identifier "undefined4") (identifier "uStack_13c") (; ";")) (declaration "uint uStack_138;" (type_identifier "uint") (identifier "uStack_138") (; ";")) (declaration "undefined4 uStack_134;" (type_identifier "undefined4") (identifier "uStack_134") (; ";")) (declaration "undefined4 auStack_130 [4];" (type_identifier "undefined4") (array_declarator "auStack_130 [4]" (identifier "auStack_130") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int iStack_120;" (primitive_type "int") (identifier "iStack_120") (; ";")) (declaration "int *piStack_118;" (primitive_type "int") (pointer_declarator "*piStack_118" (* "*") (identifier "piStack_118")) (; ";")) (declaration "undefined4 uStack_100;" (type_identifier "undefined4") (identifier "uStack_100") (; ";")) (declaration "int *piStack_dc;" (primitive_type "int") (pointer_declarator "*piStack_dc" (* "*") (identifier "piStack_dc")) (; ";")) (declaration "int *piStack_d8;" (primitive_type "int") (pointer_declarator "*piStack_d8" (* "*") (identifier "piStack_d8")) (; ";")) (declaration "uint uStack_d4;" (type_identifier "uint") (identifier "uStack_d4") (; ";")) (declaration "int *piStack_d0;" (primitive_type "int") (pointer_declarator "*piStack_d0" (* "*") (identifier "piStack_d0")) (; ";")) (declaration "undefined *puStack_cc;" (type_identifier "undefined") (pointer_declarator "*puStack_cc" (* "*") (identifier "puStack_cc")) (; ";")) (declaration "undefined4 uStack_c8;" (type_identifier "undefined4") (identifier "uStack_c8") (; ";")) (declaration "int **ppiStack_c4;" (primitive_type "int") (pointer_declarator "**ppiStack_c4" (* "*") (pointer_declarator "*ppiStack_c4" (* "*") (identifier "ppiStack_c4"))) (; ";")) (declaration "int *piStack_c0;" (primitive_type "int") (pointer_declarator "*piStack_c0" (* "*") (identifier "piStack_c0")) (; ";")) (declaration "code *pcStack_bc;" (type_identifier "code") (pointer_declarator "*pcStack_bc" (* "*") (identifier "pcStack_bc")) (; ";")) (declaration "undefined *puStack_a8;" (type_identifier "undefined") (pointer_declarator "*puStack_a8" (* "*") (identifier "puStack_a8")) (; ";")) (declaration "undefined4 *puStack_9c;" (type_identifier "undefined4") (pointer_declarator "*puStack_9c" (* "*") (identifier "puStack_9c")) (; ";")) (declaration "int *piStack_98;" (primitive_type "int") (pointer_declarator "*piStack_98" (* "*") (identifier "piStack_98")) (; ";")) (declaration "int iStack_94;" (primitive_type "int") (identifier "iStack_94") (; ";")) (declaration "int iStack_90;" (primitive_type "int") (identifier "iStack_90") (; ";")) (declaration "undefined4 uStack_8c;" (type_identifier "undefined4") (identifier "uStack_8c") (; ";")) (declaration "undefined4 *puStack_80;" (type_identifier "undefined4") (pointer_declarator "*puStack_80" (* "*") (identifier "puStack_80")) (; ";")) (declaration "int *piStack_7c;" (primitive_type "int") (pointer_declarator "*piStack_7c" (* "*") (identifier "piStack_7c")) (; ";")) (declaration "int *piStack_78;" (primitive_type "int") (pointer_declarator "*piStack_78" (* "*") (identifier "piStack_78")) (; ";")) (declaration "uint uStack_74;" (type_identifier "uint") (identifier "uStack_74") (; ";")) (declaration "int *piStack_70;" (primitive_type "int") (pointer_declarator "*piStack_70" (* "*") (identifier "piStack_70")) (; ";")) (declaration "undefined *puStack_6c;" (type_identifier "undefined") (pointer_declarator "*puStack_6c" (* "*") (identifier "puStack_6c")) (; ";")) (declaration "int *local_38;" (primitive_type "int") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "undefined *local_34;" (type_identifier "undefined") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "undefined *local_30;" (type_identifier "undefined") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "int *local_20;" (primitive_type "int") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (declaration "undefined4 *local_1c;" (type_identifier "undefined4") (pointer_declarator "*local_1c" (* "*") (identifier "local_1c")) (; ";")) (expression_statement "puVar9 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar9 = PTR___stack_chk_guard_000f5568" (identifier "puVar9") (= "=") (identifier "PTR___stack_chk_guard_000f5568")) (; ";")) (expression_statement "local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568" (identifier "local_1c") (= "=") (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000f5568" (* "*") (cast_expression "(undefined4 **)PTR___stack_chk_guard_000f5568" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000f5568")))) (; ";")) (if_statement "if (param_2 == 0) {\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }\n  else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = 0;\n    piVar6 = (int *)0x0;\n  }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" (identifier "piVar6") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    local_38 = (int *)*param_1;\n    param_4 = *(undefined **)(param_2 + 0x18);\n    local_34 = PTR_LAB_000f52fc + 0xc94;\n    unaff_s2 = (int *)param_1[6];\n    iVar1 = local_38[0x35];\n    param_3 = *(uint *)(*local_38 + 0x78);\n    local_30 = PTR_LAB_000f52fc + -0x5390;\n    local_2c = 0;\n    param_1[6] = (uint)unaff_s2 & 0xffff6fef;\n    local_38[0x35] = (int)(param_4 + iVar1);\n    unaff_s0 = param_1;\n    unaff_s1 = param_2;\n    local_20 = param_1;\n    if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }\n  }" ({ "{") (expression_statement "local_38 = (int *)*param_1;" (assignment_expression "local_38 = (int *)*param_1" (identifier "local_38") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "param_4 = *(undefined **)(param_2 + 0x18);" (assignment_expression "param_4 = *(undefined **)(param_2 + 0x18)" (identifier "param_4") (= "=") (pointer_expression "*(undefined **)(param_2 + 0x18)" (* "*") (cast_expression "(undefined **)(param_2 + 0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "local_34 = PTR_LAB_000f52fc + 0xc94;" (assignment_expression "local_34 = PTR_LAB_000f52fc + 0xc94" (identifier "local_34") (= "=") (binary_expression "PTR_LAB_000f52fc + 0xc94" (identifier "PTR_LAB_000f52fc") (+ "+") (number_literal "0xc94"))) (; ";")) (expression_statement "unaff_s2 = (int *)param_1[6];" (assignment_expression "unaff_s2 = (int *)param_1[6]" (identifier "unaff_s2") (= "=") (cast_expression "(int *)param_1[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "iVar1 = local_38[0x35];" (assignment_expression "iVar1 = local_38[0x35]" (identifier "iVar1") (= "=") (subscript_expression "local_38[0x35]" (identifier "local_38") ([ "[") (number_literal "0x35") (] "]"))) (; ";")) (expression_statement "param_3 = *(uint *)(*local_38 + 0x78);" (assignment_expression "param_3 = *(uint *)(*local_38 + 0x78)" (identifier "param_3") (= "=") (pointer_expression "*(uint *)(*local_38 + 0x78)" (* "*") (cast_expression "(uint *)(*local_38 + 0x78)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_38 + 0x78)" (( "(") (binary_expression "*local_38 + 0x78" (pointer_expression "*local_38" (* "*") (identifier "local_38")) (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "local_30 = PTR_LAB_000f52fc + -0x5390;" (assignment_expression "local_30 = PTR_LAB_000f52fc + -0x5390" (identifier "local_30") (= "=") (binary_expression "PTR_LAB_000f52fc + -0x5390" (identifier "PTR_LAB_000f52fc") (+ "+") (number_literal "-0x5390"))) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[6] = (uint)unaff_s2 & 0xffff6fef;" (assignment_expression "param_1[6] = (uint)unaff_s2 & 0xffff6fef" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "(uint)unaff_s2 & 0xffff6fef" (cast_expression "(uint)unaff_s2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s2")) (& "&") (number_literal "0xffff6fef"))) (; ";")) (expression_statement "local_38[0x35] = (int)(param_4 + iVar1);" (assignment_expression "local_38[0x35] = (int)(param_4 + iVar1)" (subscript_expression "local_38[0x35]" (identifier "local_38") ([ "[") (number_literal "0x35") (] "]")) (= "=") (cast_expression "(int)(param_4 + iVar1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_4 + iVar1)" (( "(") (binary_expression "param_4 + iVar1" (identifier "param_4") (+ "+") (identifier "iVar1")) () ")")))) (; ";")) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" (identifier "unaff_s0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "unaff_s1 = param_2;" (assignment_expression "unaff_s1 = param_2" (identifier "unaff_s1") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_20 = param_1;" (assignment_expression "local_20 = param_1" (identifier "local_20") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((int)param_3 < (int)(param_4 + iVar1)) {\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }\n    else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }" (if "if") (parenthesized_expression "((int)param_3 < (int)(param_4 + iVar1))" (( "(") (binary_expression "(int)param_3 < (int)(param_4 + iVar1)" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (cast_expression "(int)(param_4 + iVar1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_4 + iVar1)" (( "(") (binary_expression "param_4 + iVar1" (identifier "param_4") (+ "+") (identifier "iVar1")) () ")")))) () ")")) (compound_statement "{\n      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);\n      FUN_00049e28();\n      uVar2 = 1;\n    }" ({ "{") (expression_statement "piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);" (assignment_expression "piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630)" (identifier "piVar6") (= "=") (cast_expression "(int *)(PTR_LAB_000f52cc + 0x7630)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52cc + 0x7630)" (( "(") (binary_expression "PTR_LAB_000f52cc + 0x7630" (identifier "PTR_LAB_000f52cc") (+ "+") (number_literal "0x7630")) () ")")))) (; ";")) (expression_statement "FUN_00049e28();" (call_expression "FUN_00049e28()" (identifier "FUN_00049e28") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }" (else "else") (compound_statement "{\n      FUN_0002f078(&local_38);\n      piVar6 = (int *)param_1[6];\n      param_4 = *(undefined **)(param_2 + 0x18);\n      uVar2 = *(uint *)(param_2 + 4);\n      param_3 = param_1[5];\n      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);\n      local_38[0x35] = local_38[0x35] - (int)param_4;\n      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;\n      param_1[6] = (int)unaff_s2;\n      if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }\n    }" ({ "{") (expression_statement "FUN_0002f078(&local_38);" (call_expression "FUN_0002f078(&local_38)" (identifier "FUN_0002f078") (argument_list "(&local_38)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (expression_statement "piVar6 = (int *)param_1[6];" (assignment_expression "piVar6 = (int *)param_1[6]" (identifier "piVar6") (= "=") (cast_expression "(int *)param_1[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "param_4 = *(undefined **)(param_2 + 0x18);" (assignment_expression "param_4 = *(undefined **)(param_2 + 0x18)" (identifier "param_4") (= "=") (pointer_expression "*(undefined **)(param_2 + 0x18)" (* "*") (cast_expression "(undefined **)(param_2 + 0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(param_2 + 4);" (assignment_expression "uVar2 = *(uint *)(param_2 + 4)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_2 + 4)" (* "*") (cast_expression "(uint *)(param_2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "param_3 = param_1[5];" (assignment_expression "param_3 = param_1[5]" (identifier "param_3") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);" (assignment_expression "unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6)" (identifier "unaff_s2") (= "=") (cast_expression "(int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)unaff_s2 & 0x9010 | (uint)piVar6)" (( "(") (binary_expression "(uint)unaff_s2 & 0x9010 | (uint)piVar6" (binary_expression "(uint)unaff_s2 & 0x9010" (cast_expression "(uint)unaff_s2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s2")) (& "&") (number_literal "0x9010")) (| "|") (cast_expression "(uint)piVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar6"))) () ")")))) (; ";")) (expression_statement "local_38[0x35] = local_38[0x35] - (int)param_4;" (assignment_expression "local_38[0x35] = local_38[0x35] - (int)param_4" (subscript_expression "local_38[0x35]" (identifier "local_38") ([ "[") (number_literal "0x35") (] "]")) (= "=") (binary_expression "local_38[0x35] - (int)param_4" (subscript_expression "local_38[0x35]" (identifier "local_38") ([ "[") (number_literal "0x35") (] "]")) (- "-") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")))) (; ";")) (expression_statement "*(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;" (assignment_expression "*(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010" (pointer_expression "*(uint *)(param_2 + 4)" (* "*") (cast_expression "(uint *)(param_2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "uVar2 | (uint)piVar6 & 0x8010" (identifier "uVar2") (| "|") (binary_expression "(uint)piVar6 & 0x8010" (cast_expression "(uint)piVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar6")) (& "&") (number_literal "0x8010")))) (; ";")) (expression_statement "param_1[6] = (int)unaff_s2;" (assignment_expression "param_1[6] = (int)unaff_s2" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) (; ";")) (if_statement "if ((int)param_3 < 1) {\n        uVar2 = (uint)(0 < local_38[9]);\n      }\n      else {\n        uVar2 = 1;\n      }" (if "if") (parenthesized_expression "((int)param_3 < 1)" (( "(") (binary_expression "(int)param_3 < 1" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        uVar2 = (uint)(0 < local_38[9]);\n      }" ({ "{") (expression_statement "uVar2 = (uint)(0 < local_38[9]);" (assignment_expression "uVar2 = (uint)(0 < local_38[9])" (identifier "uVar2") (= "=") (call_expression "(uint)(0 < local_38[9])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0 < local_38[9])" (( "(") (binary_expression "0 < local_38[9]" (number_literal "0") (< "<") (subscript_expression "local_38[9]" (identifier "local_38") ([ "[") (number_literal "9") (] "]"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        uVar2 = 1;\n      }" (else "else") (compound_statement "{\n        uVar2 = 1;\n      }" ({ "{") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (if_statement "if (local_1c == *(undefined4 **)puVar9) {\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(local_1c == *(undefined4 **)puVar9)" (( "(") (binary_expression "local_1c == *(undefined4 **)puVar9" (identifier "local_1c") (== "==") (pointer_expression "*(undefined4 **)puVar9" (* "*") (cast_expression "(undefined4 **)puVar9" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar9")))) () ")")) (compound_statement "{\n    return uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "puVar4 = local_1c;" (assignment_expression "puVar4 = local_1c" (identifier "puVar4") (= "=") (identifier "local_1c")) (; ";")) (expression_statement "puVar8 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar8 = PTR___stack_chk_fail_000f5540" (identifier "puVar8") (= "=") (identifier "PTR___stack_chk_fail_000f5540")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000f5540" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000f5540"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar13 = puVar8 + 0xb2774;" (assignment_expression "puVar13 = puVar8 + 0xb2774" (identifier "puVar13") (= "=") (binary_expression "puVar8 + 0xb2774" (identifier "puVar8") (+ "+") (number_literal "0xb2774"))) (; ";")) (expression_statement "puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);" (assignment_expression "puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c)" (identifier "puStack_9c") (= "=") (pointer_expression "*(undefined4 **)(puVar8 + 0xaaa3c)" (* "*") (cast_expression "(undefined4 **)(puVar8 + 0xaaa3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0xaaa3c)" (( "(") (binary_expression "puVar8 + 0xaaa3c" (identifier "puVar8") (+ "+") (number_literal "0xaaa3c")) () ")"))))) (; ";")) (expression_statement "puStack_6c = puVar9;" (assignment_expression "puStack_6c = puVar9" (identifier "puStack_6c") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "piStack_7c = (int *)*puStack_9c;" (assignment_expression "piStack_7c = (int *)*puStack_9c" (identifier "piStack_7c") (= "=") (cast_expression "(int *)*puStack_9c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puStack_9c" (* "*") (identifier "puStack_9c")))) (; ";")) (expression_statement "puStack_a8 = puVar13;" (assignment_expression "puStack_a8 = puVar13" (identifier "puStack_a8") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "piStack_78 = unaff_s0;" (assignment_expression "piStack_78 = unaff_s0" (identifier "piStack_78") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "uStack_74 = unaff_s1;" (assignment_expression "uStack_74 = unaff_s1" (identifier "uStack_74") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "piStack_70 = unaff_s2;" (assignment_expression "piStack_70 = unaff_s2" (identifier "piStack_70") (= "=") (identifier "unaff_s2")) (; ";")) (if_statement "if (piVar6 == (int *)0x0) {\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }\n  else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }" (if "if") (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar2 = 0;\n    piVar7 = (int *)0x0;\n  }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" (identifier "piVar7") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }" (else "else") (compound_statement "{\n    piVar7 = (int *)*puVar4;\n    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;\n    iVar1 = *piVar6;\n    unaff_s4 = 0xffff6fef;\n    uStack_8c = 0;\n    uVar5 = puVar4[6] & 0xffff6fef;\n    uVar2 = puVar4[6] & 0x9010;\n    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;\n    puVar4[6] = uVar5;\n    piStack_98 = piVar7;\n    puStack_80 = puVar4;\n    if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }\n    unaff_s1 = uVar2 | uVar5;\n    puVar4[6] = unaff_s1;\n    uVar2 = 0;\n    unaff_s2 = piVar6;\n  }" ({ "{") (expression_statement "piVar7 = (int *)*puVar4;" (assignment_expression "piVar7 = (int *)*puVar4" (identifier "piVar7") (= "=") (cast_expression "(int *)*puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (expression_statement "iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;" (assignment_expression "iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94" (identifier "iStack_94") (= "=") (binary_expression "*(int *)(puVar8 + 0xaa7d0) + 0xc94" (pointer_expression "*(int *)(puVar8 + 0xaa7d0)" (* "*") (cast_expression "(int *)(puVar8 + 0xaa7d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0xaa7d0)" (( "(") (binary_expression "puVar8 + 0xaa7d0" (identifier "puVar8") (+ "+") (number_literal "0xaa7d0")) () ")")))) (+ "+") (number_literal "0xc94"))) (; ";")) (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" (identifier "iVar1") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "unaff_s4 = 0xffff6fef;" (assignment_expression "unaff_s4 = 0xffff6fef" (identifier "unaff_s4") (= "=") (number_literal "0xffff6fef")) (; ";")) (expression_statement "uStack_8c = 0;" (assignment_expression "uStack_8c = 0" (identifier "uStack_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = puVar4[6] & 0xffff6fef;" (assignment_expression "uVar5 = puVar4[6] & 0xffff6fef" (identifier "uVar5") (= "=") (binary_expression "puVar4[6] & 0xffff6fef" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "0xffff6fef"))) (; ";")) (expression_statement "uVar2 = puVar4[6] & 0x9010;" (assignment_expression "uVar2 = puVar4[6] & 0x9010" (identifier "uVar2") (= "=") (binary_expression "puVar4[6] & 0x9010" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "0x9010"))) (; ";")) (expression_statement "iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;" (assignment_expression "iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390" (identifier "iStack_90") (= "=") (binary_expression "*(int *)(puVar8 + 0xaa7d0) + -0x5390" (pointer_expression "*(int *)(puVar8 + 0xaa7d0)" (* "*") (cast_expression "(int *)(puVar8 + 0xaa7d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0xaa7d0)" (( "(") (binary_expression "puVar8 + 0xaa7d0" (identifier "puVar8") (+ "+") (number_literal "0xaa7d0")) () ")")))) (+ "+") (number_literal "-0x5390"))) (; ";")) (expression_statement "puVar4[6] = uVar5;" (assignment_expression "puVar4[6] = uVar5" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "piStack_98 = piVar7;" (assignment_expression "piStack_98 = piVar7" (identifier "piStack_98") (= "=") (identifier "piVar7")) (; ";")) (expression_statement "puStack_80 = puVar4;" (assignment_expression "puStack_80 = puVar4" (identifier "puStack_80") (= "=") (identifier "puVar4")) (; ";")) (if_statement "if (0 < iVar1) {\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }" (if "if") (parenthesized_expression "(0 < iVar1)" (( "(") (binary_expression "0 < iVar1" (number_literal "0") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n      unaff_s6 = piVar6 + 1;\n      iVar11 = 0;\n      unaff_s5 = &piStack_98;\n      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);\n      do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);\n      uVar5 = puVar4[6];\n    }" ({ "{") (expression_statement "unaff_s6 = piVar6 + 1;" (assignment_expression "unaff_s6 = piVar6 + 1" (identifier "unaff_s6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s5 = &piStack_98;" (assignment_expression "unaff_s5 = &piStack_98" (identifier "unaff_s5") (= "=") (pointer_expression "&piStack_98" (& "&") (identifier "piStack_98"))) (; ";")) (expression_statement "puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);" (assignment_expression "puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88)" (identifier "puVar9") (= "=") (cast_expression "(undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar8 + 0xaa7c0) + -0xf88)" (( "(") (binary_expression "*(int *)(puVar8 + 0xaa7c0) + -0xf88" (pointer_expression "*(int *)(puVar8 + 0xaa7c0)" (* "*") (cast_expression "(int *)(puVar8 + 0xaa7c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0xaa7c0)" (( "(") (binary_expression "puVar8 + 0xaa7c0" (identifier "puVar8") (+ "+") (number_literal "0xaa7c0")) () ")")))) (+ "+") (number_literal "-0xf88")) () ")")))) (; ";")) (do_statement "do {\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      } while (iVar11 < iVar1);" (do "do") (compound_statement "{\n        unaff_s1 = uVar2;\n        unaff_s0 = (int *)*unaff_s6;\n        if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }\n        iVar11 = iVar11 + 1;\n        unaff_s6 = unaff_s6 + 4;\n        uVar2 = unaff_s1;\n      }" ({ "{") (expression_statement "unaff_s1 = uVar2;" (assignment_expression "unaff_s1 = uVar2" (identifier "unaff_s1") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "unaff_s0 = (int *)*unaff_s6;" (assignment_expression "unaff_s0 = (int *)*unaff_s6" (identifier "unaff_s0") (= "=") (cast_expression "(int *)*unaff_s6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6")))) (; ";")) (if_statement "if (unaff_s0 != (int *)0x0) {\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }" (if "if") (parenthesized_expression "(unaff_s0 != (int *)0x0)" (( "(") (binary_expression "unaff_s0 != (int *)0x0" (identifier "unaff_s0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar3 = unaff_s0[6];\n          iVar1 = piStack_98[0x35];\n          param_3 = *(uint *)(*piStack_98 + 0x78);\n          piStack_98[0x35] = iVar1 + iVar3;\n          if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }\n          FUN_0002f078(unaff_s5,unaff_s0);\n          param_3 = unaff_s0[6];\n          uVar2 = puVar4[6];\n          piVar7 = (int *)(uVar2 & 0x9010);\n          piStack_98[0x35] = piStack_98[0x35] - param_3;\n          if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }\n          uVar2 = 2;\n          unaff_s2 = piVar6;\n          puVar13 = puStack_a8;\n          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;\n          iVar1 = *piVar6;\n        }" ({ "{") (expression_statement "iVar3 = unaff_s0[6];" (assignment_expression "iVar3 = unaff_s0[6]" (identifier "iVar3") (= "=") (subscript_expression "unaff_s0[6]" (identifier "unaff_s0") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar1 = piStack_98[0x35];" (assignment_expression "iVar1 = piStack_98[0x35]" (identifier "iVar1") (= "=") (subscript_expression "piStack_98[0x35]" (identifier "piStack_98") ([ "[") (number_literal "0x35") (] "]"))) (; ";")) (expression_statement "param_3 = *(uint *)(*piStack_98 + 0x78);" (assignment_expression "param_3 = *(uint *)(*piStack_98 + 0x78)" (identifier "param_3") (= "=") (pointer_expression "*(uint *)(*piStack_98 + 0x78)" (* "*") (cast_expression "(uint *)(*piStack_98 + 0x78)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piStack_98 + 0x78)" (( "(") (binary_expression "*piStack_98 + 0x78" (pointer_expression "*piStack_98" (* "*") (identifier "piStack_98")) (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "piStack_98[0x35] = iVar1 + iVar3;" (assignment_expression "piStack_98[0x35] = iVar1 + iVar3" (subscript_expression "piStack_98[0x35]" (identifier "piStack_98") ([ "[") (number_literal "0x35") (] "]")) (= "=") (binary_expression "iVar1 + iVar3" (identifier "iVar1") (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if ((int)param_3 < iVar1 + iVar3) {\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }" (if "if") (parenthesized_expression "((int)param_3 < iVar1 + iVar3)" (( "(") (binary_expression "(int)param_3 < iVar1 + iVar3" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (binary_expression "iVar1 + iVar3" (identifier "iVar1") (+ "+") (identifier "iVar3"))) () ")")) (compound_statement "{\n            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);\n            FUN_00049e28();\n            uVar2 = 2;\n            unaff_s2 = piVar6;\n            puVar13 = puStack_a8;\n            goto LAB_0004ac98;\n          }" ({ "{") (expression_statement "piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);" (assignment_expression "piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630)" (identifier "piVar7") (= "=") (cast_expression "(int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar13 + -0x7fd4) + 0x7630)" (( "(") (binary_expression "*(int *)(puVar13 + -0x7fd4) + 0x7630" (pointer_expression "*(int *)(puVar13 + -0x7fd4)" (* "*") (cast_expression "(int *)(puVar13 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x7fd4)" (( "(") (binary_expression "puVar13 + -0x7fd4" (identifier "puVar13") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x7630")) () ")")))) (; ";")) (expression_statement "FUN_00049e28();" (call_expression "FUN_00049e28()" (identifier "FUN_00049e28") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (; ";")) (expression_statement "unaff_s2 = piVar6;" (assignment_expression "unaff_s2 = piVar6" (identifier "unaff_s2") (= "=") (identifier "piVar6")) (; ";")) (expression_statement "puVar13 = puStack_a8;" (assignment_expression "puVar13 = puStack_a8" (identifier "puVar13") (= "=") (identifier "puStack_a8")) (; ";")) (goto_statement "goto LAB_0004ac98;" (goto "goto") (statement_identifier "LAB_0004ac98") (; ";")) (} "}"))) (expression_statement "FUN_0002f078(unaff_s5,unaff_s0);" (call_expression "FUN_0002f078(unaff_s5,unaff_s0)" (identifier "FUN_0002f078") (argument_list "(unaff_s5,unaff_s0)" (( "(") (identifier "unaff_s5") (, ",") (identifier "unaff_s0") () ")"))) (; ";")) (expression_statement "param_3 = unaff_s0[6];" (assignment_expression "param_3 = unaff_s0[6]" (identifier "param_3") (= "=") (subscript_expression "unaff_s0[6]" (identifier "unaff_s0") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar2 = puVar4[6];" (assignment_expression "uVar2 = puVar4[6]" (identifier "uVar2") (= "=") (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "piVar7 = (int *)(uVar2 & 0x9010);" (assignment_expression "piVar7 = (int *)(uVar2 & 0x9010)" (identifier "piVar7") (= "=") (cast_expression "(int *)(uVar2 & 0x9010)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar2 & 0x9010)" (( "(") (binary_expression "uVar2 & 0x9010" (identifier "uVar2") (& "&") (number_literal "0x9010")) () ")")))) (; ";")) (expression_statement "piStack_98[0x35] = piStack_98[0x35] - param_3;" (assignment_expression "piStack_98[0x35] = piStack_98[0x35] - param_3" (subscript_expression "piStack_98[0x35]" (identifier "piStack_98") ([ "[") (number_literal "0x35") (] "]")) (= "=") (binary_expression "piStack_98[0x35] - param_3" (subscript_expression "piStack_98[0x35]" (identifier "piStack_98") ([ "[") (number_literal "0x35") (] "]")) (- "-") (identifier "param_3"))) (; ";")) (if_statement "if (piVar7 != (int *)0x0) {\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }" (if "if") (parenthesized_expression "(piVar7 != (int *)0x0)" (( "(") (binary_expression "piVar7 != (int *)0x0" (identifier "piVar7") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            param_3 = uVar2 & 0x8010;\n            unaff_s1 = unaff_s1 | (uint)piVar7;\n            unaff_s0[1] = unaff_s0[1] | param_3;\n            puVar4[6] = uVar2 & 0xffff6fef;\n          }" ({ "{") (expression_statement "param_3 = uVar2 & 0x8010;" (assignment_expression "param_3 = uVar2 & 0x8010" (identifier "param_3") (= "=") (binary_expression "uVar2 & 0x8010" (identifier "uVar2") (& "&") (number_literal "0x8010"))) (; ";")) (expression_statement "unaff_s1 = unaff_s1 | (uint)piVar7;" (assignment_expression "unaff_s1 = unaff_s1 | (uint)piVar7" (identifier "unaff_s1") (= "=") (binary_expression "unaff_s1 | (uint)piVar7" (identifier "unaff_s1") (| "|") (cast_expression "(uint)piVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar7")))) (; ";")) (expression_statement "unaff_s0[1] = unaff_s0[1] | param_3;" (assignment_expression "unaff_s0[1] = unaff_s0[1] | param_3" (subscript_expression "unaff_s0[1]" (identifier "unaff_s0") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "unaff_s0[1] | param_3" (subscript_expression "unaff_s0[1]" (identifier "unaff_s0") ([ "[") (number_literal "1") (] "]")) (| "|") (identifier "param_3"))) (; ";")) (expression_statement "puVar4[6] = uVar2 & 0xffff6fef;" (assignment_expression "puVar4[6] = uVar2 & 0xffff6fef" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "uVar2 & 0xffff6fef" (identifier "uVar2") (& "&") (number_literal "0xffff6fef"))) (; ";")) (} "}"))) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (; ";")) (expression_statement "unaff_s2 = piVar6;" (assignment_expression "unaff_s2 = piVar6" (identifier "unaff_s2") (= "=") (identifier "piVar6")) (; ";")) (expression_statement "puVar13 = puStack_a8;" (assignment_expression "puVar13 = puStack_a8" (identifier "puVar13") (= "=") (identifier "puStack_a8")) (; ";")) (if_statement "if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;" (if "if") (parenthesized_expression "((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9]))" (( "(") (binary_expression "(0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])" (parenthesized_expression "(0 < (int)puVar4[5])" (( "(") (binary_expression "0 < (int)puVar4[5]" (number_literal "0") (< "<") (cast_expression "(int)puVar4[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")))) () ")")) (|| "||") (parenthesized_expression "(uVar2 = 2, 0 < piStack_98[9])" (( "(") (comma_expression "uVar2 = 2, 0 < piStack_98[9]" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (, ",") (binary_expression "0 < piStack_98[9]" (number_literal "0") (< "<") (subscript_expression "piStack_98[9]" (identifier "piStack_98") ([ "[") (number_literal "9") (] "]")))) () ")"))) () ")")) (goto_statement "goto LAB_0004ac98;" (goto "goto") (statement_identifier "LAB_0004ac98") (; ";"))) (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" (identifier "iVar1") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (} "}"))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s6 = unaff_s6 + 4;" (assignment_expression "unaff_s6 = unaff_s6 + 4" (identifier "unaff_s6") (= "=") (binary_expression "unaff_s6 + 4" (identifier "unaff_s6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar2 = unaff_s1;" (assignment_expression "uVar2 = unaff_s1" (identifier "uVar2") (= "=") (identifier "unaff_s1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 < iVar1)" (( "(") (binary_expression "iVar11 < iVar1" (identifier "iVar11") (< "<") (identifier "iVar1")) () ")")) (; ";")) (expression_statement "uVar5 = puVar4[6];" (assignment_expression "uVar5 = puVar4[6]" (identifier "uVar5") (= "=") (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (expression_statement "unaff_s1 = uVar2 | uVar5;" (assignment_expression "unaff_s1 = uVar2 | uVar5" (identifier "unaff_s1") (= "=") (binary_expression "uVar2 | uVar5" (identifier "uVar2") (| "|") (identifier "uVar5"))) (; ";")) (expression_statement "puVar4[6] = unaff_s1;" (assignment_expression "puVar4[6] = unaff_s1" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s2 = piVar6;" (assignment_expression "unaff_s2 = piVar6" (identifier "unaff_s2") (= "=") (identifier "piVar6")) (; ";")) (} "}")))) (labeled_statement "LAB_0004ac98:\n  if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }" (statement_identifier "LAB_0004ac98") (: ":") (if_statement "if (piStack_7c == (int *)*puStack_9c) {\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(piStack_7c == (int *)*puStack_9c)" (( "(") (binary_expression "piStack_7c == (int *)*puStack_9c" (identifier "piStack_7c") (== "==") (cast_expression "(int *)*puStack_9c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puStack_9c" (* "*") (identifier "puStack_9c")))) () ")")) (compound_statement "{\n    return uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))) (expression_statement "pcVar12 = *(code **)(puVar13 + -0x7d60);" (assignment_expression "pcVar12 = *(code **)(puVar13 + -0x7d60)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(puVar13 + -0x7d60)" (* "*") (cast_expression "(code **)(puVar13 + -0x7d60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x7d60)" (( "(") (binary_expression "puVar13 + -0x7d60" (identifier "puVar13") (+ "+") (number_literal "-0x7d60")) () ")"))))) (; ";")) (expression_statement "pcVar14 = FUN_0004ad0c;" (assignment_expression "pcVar14 = FUN_0004ad0c" (identifier "pcVar14") (= "=") (identifier "FUN_0004ad0c")) (; ";")) (expression_statement "piVar6 = piStack_7c;" (assignment_expression "piVar6 = piStack_7c" (identifier "piVar6") (= "=") (identifier "piStack_7c")) (; ";")) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar8 = puStack_a8;" (assignment_expression "puVar8 = puStack_a8" (identifier "puVar8") (= "=") (identifier "puStack_a8")) (; ";")) (expression_statement "piVar10 = *(int **)(pcVar12 + 0xaa85c);" (assignment_expression "piVar10 = *(int **)(pcVar12 + 0xaa85c)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(pcVar12 + 0xaa85c)" (* "*") (cast_expression "(int **)(pcVar12 + 0xaa85c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0xaa85c)" (( "(") (binary_expression "pcVar12 + 0xaa85c" (identifier "pcVar12") (+ "+") (number_literal "0xaa85c")) () ")"))))) (; ";")) (expression_statement "piStack_150 = (int *)0x0;" (assignment_expression "piStack_150 = (int *)0x0" (identifier "piStack_150") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" (identifier "uStack_14c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_148 = 0;" (assignment_expression "uStack_148 = 0" (identifier "uStack_148") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_144 = 0;" (assignment_expression "uStack_144 = 0" (identifier "uStack_144") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_140 = 0;" (assignment_expression "uStack_140 = 0" (identifier "uStack_140") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_13c = 0;" (assignment_expression "uStack_13c = 0" (identifier "uStack_13c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_138 = 0;" (assignment_expression "uStack_138 = 0" (identifier "uStack_138") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_134 = 0;" (assignment_expression "uStack_134 = 0" (identifier "uStack_134") (= "=") (number_literal "0")) (; ";")) (expression_statement "piStack_dc = (int *)*piVar10;" (assignment_expression "piStack_dc = (int *)*piVar10" (identifier "piStack_dc") (= "=") (cast_expression "(int *)*piVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar10" (* "*") (identifier "piVar10")))) (; ";")) (expression_statement "piStack_d8 = unaff_s0;" (assignment_expression "piStack_d8 = unaff_s0" (identifier "piStack_d8") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "uStack_d4 = unaff_s1;" (assignment_expression "uStack_d4 = unaff_s1" (identifier "uStack_d4") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "piStack_d0 = unaff_s2;" (assignment_expression "piStack_d0 = unaff_s2" (identifier "piStack_d0") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puStack_cc = puVar9;" (assignment_expression "puStack_cc = puVar9" (identifier "puStack_cc") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "uStack_c8 = unaff_s4;" (assignment_expression "uStack_c8 = unaff_s4" (identifier "uStack_c8") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "ppiStack_c4 = unaff_s5;" (assignment_expression "ppiStack_c4 = unaff_s5" (identifier "ppiStack_c4") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "piStack_c0 = unaff_s6;" (assignment_expression "piStack_c0 = unaff_s6" (identifier "piStack_c0") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pcStack_bc = pcVar14;" (assignment_expression "pcStack_bc = pcVar14" (identifier "pcStack_bc") (= "=") (identifier "pcVar14")) (; ";")) (expression_statement "uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);" (assignment_expression "uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50)" (identifier "uStack_14c") (= "=") (call_expression "(**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50)" (parenthesized_expression "(**(code **)(pcVar12 + 0xaa744))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0xaa744)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0xaa744)" (* "*") (cast_expression "(code **)(pcVar12 + 0xaa744)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0xaa744)" (( "(") (binary_expression "pcVar12 + 0xaa744" (identifier "pcVar12") (+ "+") (number_literal "0xaa744")) () ")"))))) () ")")) (argument_list "(auStack_130,0,0x50)" (( "(") (identifier "auStack_130") (, ",") (number_literal "0") (, ",") (number_literal "0x50") () ")")))) (; ";")) (if_statement "if (piVar7 != (int *)0x0) {\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }" (if "if") (parenthesized_expression "(piVar7 != (int *)0x0)" (( "(") (binary_expression "piVar7 != (int *)0x0" (identifier "piVar7") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iStack_120 = *piVar7;\n    auStack_130[0] = 1;\n    uStack_100 = 0xffffffff;\n    piStack_118 = piVar7;\n    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }\n  }" ({ "{") (expression_statement "iStack_120 = *piVar7;" (assignment_expression "iStack_120 = *piVar7" (identifier "iStack_120") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "auStack_130[0] = 1;" (assignment_expression "auStack_130[0] = 1" (subscript_expression "auStack_130[0]" (identifier "auStack_130") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_100 = 0xffffffff;" (assignment_expression "uStack_100 = 0xffffffff" (identifier "uStack_100") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "piStack_118 = piVar7;" (assignment_expression "piStack_118 = piVar7" (identifier "piStack_118") (= "=") (identifier "piVar7")) (; ";")) (if_statement "if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {\n      param_3 = param_3 | 0x40000;\n    }" (if "if") (parenthesized_expression "(piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c))" (( "(") (binary_expression "piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)" (subscript_expression "piVar7[0x12]" (identifier "piVar7") ([ "[") (number_literal "0x12") (] "]")) (!= "!=") (pointer_expression "*(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar6 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(*piVar6 + 0x10) + 0x1c" (pointer_expression "*(int *)(*piVar6 + 0x10)" (* "*") (cast_expression "(int *)(*piVar6 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar6 + 0x10)" (( "(") (binary_expression "*piVar6 + 0x10" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n      param_3 = param_3 | 0x40000;\n    }" ({ "{") (expression_statement "param_3 = param_3 | 0x40000;" (assignment_expression "param_3 = param_3 | 0x40000" (identifier "param_3") (= "=") (binary_expression "param_3 | 0x40000" (identifier "param_3") (| "|") (number_literal "0x40000"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uStack_138 = param_3 | 0x10000;" (assignment_expression "uStack_138 = param_3 | 0x10000" (identifier "uStack_138") (= "=") (binary_expression "param_3 | 0x10000" (identifier "param_3") (| "|") (number_literal "0x10000"))) (; ";")) (expression_statement "piStack_150 = piVar6;" (assignment_expression "piStack_150 = piVar6" (identifier "piStack_150") (= "=") (identifier "piVar6")) (; ";")) (expression_statement "uVar2 = FUN_0004a9d4(&piStack_150);" (assignment_expression "uVar2 = FUN_0004a9d4(&piStack_150)" (identifier "uVar2") (= "=") (call_expression "FUN_0004a9d4(&piStack_150)" (identifier "FUN_0004a9d4") (argument_list "(&piStack_150)" (( "(") (pointer_expression "&piStack_150" (& "&") (identifier "piStack_150")) () ")")))) (; ";")) (if_statement "if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }" (if "if") (parenthesized_expression "((uVar2 == 0) && (puVar8 != (undefined *)0x0))" (( "(") (binary_expression "(uVar2 == 0) && (puVar8 != (undefined *)0x0)" (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar8 != (undefined *)0x0)" (( "(") (binary_expression "puVar8 != (undefined *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    uVar2 = FUN_0004ab2c(&piStack_150);\n    param_4 = puVar8;\n  }" ({ "{") (expression_statement "uVar2 = FUN_0004ab2c(&piStack_150);" (assignment_expression "uVar2 = FUN_0004ab2c(&piStack_150)" (identifier "uVar2") (= "=") (call_expression "FUN_0004ab2c(&piStack_150)" (identifier "FUN_0004ab2c") (argument_list "(&piStack_150)" (( "(") (pointer_expression "&piStack_150" (& "&") (identifier "piStack_150")) () ")")))) (; ";")) (expression_statement "param_4 = puVar8;" (assignment_expression "param_4 = puVar8" (identifier "param_4") (= "=") (identifier "puVar8")) (; ";")) (} "}"))) (if_statement "if (piStack_dc == (int *)*piVar10) {\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(piStack_dc == (int *)*piVar10)" (( "(") (binary_expression "piStack_dc == (int *)*piVar10" (identifier "piStack_dc") (== "==") (cast_expression "(int *)*piVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar10" (* "*") (identifier "piVar10")))) () ")")) (compound_statement "{\n    return uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "pcVar12 = *(code **)(pcVar12 + 0xaa834);" (assignment_expression "pcVar12 = *(code **)(pcVar12 + 0xaa834)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(pcVar12 + 0xaa834)" (* "*") (cast_expression "(code **)(pcVar12 + 0xaa834)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0xaa834)" (( "(") (binary_expression "pcVar12 + 0xaa834" (identifier "pcVar12") (+ "+") (number_literal "0xaa834")) () ")"))))) (; ";")) (expression_statement "piVar6 = piStack_dc;" (assignment_expression "piVar6 = piStack_dc" (identifier "piVar6") (= "=") (identifier "piStack_dc")) (; ";")) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0002fde8(param_4);" (call_expression "FUN_0002fde8(param_4)" (identifier "FUN_0002fde8") (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))) (; ";")) (if_statement "if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78))" (( "(") (binary_expression "*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)" (pointer_expression "*(int *)(param_4 + 0x18)" (* "*") (cast_expression "(int *)(param_4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (pointer_expression "*(int *)(*piVar6 + 0x78)" (* "*") (cast_expression "(int *)(*piVar6 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar6 + 0x78)" (( "(") (binary_expression "*piVar6 + 0x78" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (number_literal "0x78")) () ")"))))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);" (assignment_expression "uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630)" (identifier "uVar2") (= "=") (call_expression "FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630)" (identifier "FUN_00049e28") (argument_list "(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630)" (( "(") (identifier "piVar6") (, ",") (binary_expression "*(int *)(pcVar12 + 0xaa45c) + 0x7630" (pointer_expression "*(int *)(pcVar12 + 0xaa45c)" (* "*") (cast_expression "(int *)(pcVar12 + 0xaa45c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0xaa45c)" (( "(") (binary_expression "pcVar12 + 0xaa45c" (identifier "pcVar12") (+ "+") (number_literal "0xaa45c")) () ")")))) (+ "+") (number_literal "0x7630")) () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) 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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))))))) (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 (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))) (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 (identifier) (number_literal) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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 (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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)))))) (return_statement (identifier)))))

uint MASKED(int *param_1,uint param_2,uint param_3,undefined *param_4)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  undefined4 *puVar4;
  uint uVar5;
  int *piVar6;
  int *piVar7;
  undefined *puVar8;
  int *unaff_s0;
  uint unaff_s1;
  int *unaff_s2;
  undefined *puVar9;
  int *piVar10;
  undefined4 unaff_s4;
  int **unaff_s5;
  int *unaff_s6;
  int iVar11;
  code *pcVar12;
  undefined *puVar13;
  code *pcVar14;
  int *piStack_150;
  undefined4 uStack_14c;
  undefined4 uStack_148;
  undefined4 uStack_144;
  undefined4 uStack_140;
  undefined4 uStack_13c;
  uint uStack_138;
  undefined4 uStack_134;
  undefined4 auStack_130 [4];
  int iStack_120;
  int *piStack_118;
  undefined4 uStack_100;
  int *piStack_dc;
  int *piStack_d8;
  uint uStack_d4;
  int *piStack_d0;
  undefined *puStack_cc;
  undefined4 uStack_c8;
  int **ppiStack_c4;
  int *piStack_c0;
  code *pcStack_bc;
  undefined *puStack_a8;
  undefined4 *puStack_9c;
  int *piStack_98;
  int iStack_94;
  int iStack_90;
  undefined4 uStack_8c;
  undefined4 *puStack_80;
  int *piStack_7c;
  int *piStack_78;
  uint uStack_74;
  int *piStack_70;
  undefined *puStack_6c;
  int *local_38;
  undefined *local_34;
  undefined *local_30;
  undefined4 local_2c;
  int *local_20;
  undefined4 *local_1c;
  
  puVar9 = PTR___stack_chk_guard_000f5568;
  local_1c = *(undefined4 **)PTR___stack_chk_guard_000f5568;
  if (param_2 == 0) {
    uVar2 = 0;
    piVar6 = (int *)0x0;
  }
  else {
    local_38 = (int *)*param_1;
    param_4 = *(undefined **)(param_2 + 0x18);
    local_34 = PTR_LAB_000f52fc + 0xc94;
    unaff_s2 = (int *)param_1[6];
    iVar1 = local_38[0x35];
    param_3 = *(uint *)(*local_38 + 0x78);
    local_30 = PTR_LAB_000f52fc + -0x5390;
    local_2c = 0;
    param_1[6] = (uint)unaff_s2 & 0xffff6fef;
    local_38[0x35] = (int)(param_4 + iVar1);
    unaff_s0 = param_1;
    unaff_s1 = param_2;
    local_20 = param_1;
    if ((int)param_3 < (int)(param_4 + iVar1)) {
      piVar6 = (int *)(PTR_LAB_000f52cc + 0x7630);
      FUN_00049e28();
      uVar2 = 1;
    }
    else {
      FUN_0002f078(&local_38);
      piVar6 = (int *)param_1[6];
      param_4 = *(undefined **)(param_2 + 0x18);
      uVar2 = *(uint *)(param_2 + 4);
      param_3 = param_1[5];
      unaff_s2 = (int *)((uint)unaff_s2 & 0x9010 | (uint)piVar6);
      local_38[0x35] = local_38[0x35] - (int)param_4;
      *(uint *)(param_2 + 4) = uVar2 | (uint)piVar6 & 0x8010;
      param_1[6] = (int)unaff_s2;
      if ((int)param_3 < 1) {
        uVar2 = (uint)(0 < local_38[9]);
      }
      else {
        uVar2 = 1;
      }
    }
  }
  if (local_1c == *(undefined4 **)puVar9) {
    return uVar2;
  }
  puVar4 = local_1c;
  puVar8 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  puVar13 = puVar8 + 0xb2774;
  puStack_9c = *(undefined4 **)(puVar8 + 0xaaa3c);
  puStack_6c = puVar9;
  piStack_7c = (int *)*puStack_9c;
  puStack_a8 = puVar13;
  piStack_78 = unaff_s0;
  uStack_74 = unaff_s1;
  piStack_70 = unaff_s2;
  if (piVar6 == (int *)0x0) {
    uVar2 = 0;
    piVar7 = (int *)0x0;
  }
  else {
    piVar7 = (int *)*puVar4;
    iStack_94 = *(int *)(puVar8 + 0xaa7d0) + 0xc94;
    iVar1 = *piVar6;
    unaff_s4 = 0xffff6fef;
    uStack_8c = 0;
    uVar5 = puVar4[6] & 0xffff6fef;
    uVar2 = puVar4[6] & 0x9010;
    iStack_90 = *(int *)(puVar8 + 0xaa7d0) + -0x5390;
    puVar4[6] = uVar5;
    piStack_98 = piVar7;
    puStack_80 = puVar4;
    if (0 < iVar1) {
      unaff_s6 = piVar6 + 1;
      iVar11 = 0;
      unaff_s5 = &piStack_98;
      puVar9 = (undefined *)(*(int *)(puVar8 + 0xaa7c0) + -0xf88);
      do {
        unaff_s1 = uVar2;
        unaff_s0 = (int *)*unaff_s6;
        if (unaff_s0 != (int *)0x0) {
          iVar3 = unaff_s0[6];
          iVar1 = piStack_98[0x35];
          param_3 = *(uint *)(*piStack_98 + 0x78);
          piStack_98[0x35] = iVar1 + iVar3;
          if ((int)param_3 < iVar1 + iVar3) {
            piVar7 = (int *)(*(int *)(puVar13 + -0x7fd4) + 0x7630);
            FUN_00049e28();
            uVar2 = 2;
            unaff_s2 = piVar6;
            puVar13 = puStack_a8;
            goto LAB_0004ac98;
          }
          FUN_0002f078(unaff_s5,unaff_s0);
          param_3 = unaff_s0[6];
          uVar2 = puVar4[6];
          piVar7 = (int *)(uVar2 & 0x9010);
          piStack_98[0x35] = piStack_98[0x35] - param_3;
          if (piVar7 != (int *)0x0) {
            param_3 = uVar2 & 0x8010;
            unaff_s1 = unaff_s1 | (uint)piVar7;
            unaff_s0[1] = unaff_s0[1] | param_3;
            puVar4[6] = uVar2 & 0xffff6fef;
          }
          uVar2 = 2;
          unaff_s2 = piVar6;
          puVar13 = puStack_a8;
          if ((0 < (int)puVar4[5]) || (uVar2 = 2, 0 < piStack_98[9])) goto LAB_0004ac98;
          iVar1 = *piVar6;
        }
        iVar11 = iVar11 + 1;
        unaff_s6 = unaff_s6 + 4;
        uVar2 = unaff_s1;
      } while (iVar11 < iVar1);
      uVar5 = puVar4[6];
    }
    unaff_s1 = uVar2 | uVar5;
    puVar4[6] = unaff_s1;
    uVar2 = 0;
    unaff_s2 = piVar6;
  }
LAB_0004ac98:
  if (piStack_7c == (int *)*puStack_9c) {
    return uVar2;
  }
  pcVar12 = *(code **)(puVar13 + -0x7d60);
  pcVar14 = FUN_0004ad0c;
  piVar6 = piStack_7c;
  (*pcVar12)();
  puVar8 = puStack_a8;
  piVar10 = *(int **)(pcVar12 + 0xaa85c);
  piStack_150 = (int *)0x0;
  uStack_14c = 0;
  uStack_148 = 0;
  uStack_144 = 0;
  uStack_140 = 0;
  uStack_13c = 0;
  uStack_138 = 0;
  uStack_134 = 0;
  piStack_dc = (int *)*piVar10;
  piStack_d8 = unaff_s0;
  uStack_d4 = unaff_s1;
  piStack_d0 = unaff_s2;
  puStack_cc = puVar9;
  uStack_c8 = unaff_s4;
  ppiStack_c4 = unaff_s5;
  piStack_c0 = unaff_s6;
  pcStack_bc = pcVar14;
  uStack_14c = (**(code **)(pcVar12 + 0xaa744))(auStack_130,0,0x50);
  if (piVar7 != (int *)0x0) {
    iStack_120 = *piVar7;
    auStack_130[0] = 1;
    uStack_100 = 0xffffffff;
    piStack_118 = piVar7;
    if (piVar7[0x12] != *(int *)(*(int *)(*piVar6 + 0x10) + 0x1c)) {
      param_3 = param_3 | 0x40000;
    }
  }
  uStack_138 = param_3 | 0x10000;
  piStack_150 = piVar6;
  uVar2 = MASKED(&piStack_150);
  if ((uVar2 == 0) && (puVar8 != (undefined *)0x0)) {
    uVar2 = FUN_0004ab2c(&piStack_150);
    param_4 = puVar8;
  }
  if (piStack_dc == (int *)*piVar10) {
    return uVar2;
  }
  pcVar12 = *(code **)(pcVar12 + 0xaa834);
  piVar6 = piStack_dc;
  (*pcVar12)();
  FUN_0002fde8(param_4);
  if (*(int *)(param_4 + 0x18) <= *(int *)(*piVar6 + 0x78)) {
    return 0;
  }
  uVar2 = FUN_00049e28(piVar6,*(int *)(pcVar12 + 0xaa45c) + 0x7630);
  return uVar2;
}

