
int valueFromExpr(sqlite3 *db,Expr *pExpr,u8 enc,u8 affinity,sqlite3_value **ppVal,
                 ValueNewStat4Ctx *pCtx)

{
  byte *pbVar1;
  byte *pbVar2;
  char cVar3;
  undefined *puVar4;
  uint uVar5;
  int iVar6;
  char *z;
  byte bVar11;
  Mem *pMem;
  int iVar7;
  sqlite3_value *psVar8;
  uint uVar9;
  int iVar10;
  byte bVar13;
  Vdbe *pVVar12;
  Parse *pParse;
  byte *pbVar14;
  int *piVar15;
  anon_union_4_2_443a03b8_for_u aVar16;
  Expr *pA;
  undefined3 in_register_00000018;
  anon_union_4_2_443a03b8_for_u aVar17;
  anon_union_4_2_443a03b8_for_u aVar18;
  Expr *pB;
  undefined3 in_register_0000001c;
  anon_union_4_2_443a03b8_for_u aVar19;
  anon_union_4_2_443a03b8_for_u aVar20;
  anon_union_4_2_443a03b8_for_u pExpr_00;
  undefined4 *puVar21;
  int *piVar22;
  anon_union_4_2_443a03b8_for_u aVar23;
  anon_union_4_2_443a03b8_for_u unaff_s6;
  uint uVar24;
  int unaff_s7;
  uint uVar25;
  undefined *puVar26;
  code *pcVar27;
  ValueNewStat4Ctx *in_stack_ffffff6c;
  anon_union_4_2_443a03b8_for_u aStack_88;
  int *piStack_84;
  int iStack_7c;
  anon_union_4_2_443a03b8_for_u aStack_78;
  undefined *puStack_74;
  sqlite3_value **ppsStack_70;
  anon_union_4_2_443a03b8_for_u aStack_6c;
  anon_union_4_2_443a03b8_for_u aStack_68;
  anon_union_4_2_443a03b8_for_u aStack_64;
  int iStack_60;
  code *pcStack_5c;
  ValueNewStat4Ctx *in_stack_ffffffbc;
  sqlite3_value *local_30;
  Parse *local_2c;
  
  puVar4 = PTR___stack_chk_guard_000f5568;
  aVar19.iValue._0_3_ = in_register_0000001c;
  aVar19.iValue._3_1_ = affinity;
  aVar16.iValue._0_3_ = in_register_00000018;
  aVar16.iValue._3_1_ = enc;
  local_30 = (Mem *)0x0;
  local_2c = *(Parse **)PTR___stack_chk_guard_000f5568;
  for (pExpr_00 = (anon_union_4_2_443a03b8_for_u)pExpr;
      (bVar11 = *pExpr_00.zToken, bVar11 == 0xab || (bVar11 == 0xb2));
      pExpr_00 = (anon_union_4_2_443a03b8_for_u)
                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken) {
  }
  if (bVar11 == 0xad) {
    bVar11 = *(u8 *)(pExpr_00.iValue + 2);
  }
  if (bVar11 == 0x24) {
    bVar11 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))
                       (((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken,0);
    aVar23.iValue._0_3_ = 0;
    aVar23.iValue._3_1_ = bVar11;
    pExpr = (Expr *)((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;
    aVar20.iValue = aVar23.iValue;
    iVar6 = valueFromExpr(db,pExpr,enc,bVar11,ppVal,in_stack_ffffffbc);
    aVar17 = aVar16;
    if (*ppVal != (Mem *)0x0) {
      sqlite3VdbeMemCast(*ppVal,bVar11,'\x01');
      aVar17.iValue = 1;
      pExpr = (Expr *)(int)(char)affinity;
      applyAffinity(*ppVal,affinity,'\x01');
    }
  }
  else {
    aVar17 = aVar16;
    aVar20 = aVar19;
    aVar23 = aVar16;
    if (bVar11 == 0xaa) {
      pExpr_00 = (anon_union_4_2_443a03b8_for_u)
                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;
      bVar11 = *pExpr_00.zToken;
      if ((bVar11 == 0x98) ||
         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)) {
        unaff_s7 = -1;
        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;
        goto LAB_000629b8;
      }
LAB_00062b54:
      pExpr = (Expr *)pExpr_00;
      iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc);
      psVar8 = local_30;
      if (iVar6 == 0) {
        iVar6 = 0;
        if (local_30 != (Mem *)0x0) {
          (*(code *)(PTR_LAB_000f52ec + -0x4950))();
          if ((local_30->flags & 8) == 0) {
            iVar7 = (local_30->u).nZero;
            iVar10 = *(int *)((int)&local_30->u + 4);
            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {
              local_30->flags = local_30->flags & 0x3e40 | 8;
              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);
            }
            else {
              iVar10 = -iVar10;
              *(int *)((int)&local_30->u + 4) = iVar10;
              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);
            }
          }
          else {
            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;
          }
          pExpr = (Expr *)(int)(char)affinity;
          aVar17 = aVar16;
          applyAffinity(local_30,affinity,enc);
          psVar8 = local_30;
        }
      }
      else {
LAB_00062a94:
        iVar6 = 0;
      }
    }
    else {
      unaff_s7 = 1;
      unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;
LAB_000629b8:
      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {
        aVar20.iValue = 0x28;
        aVar17.zToken = (char *)0x0;
        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);
        if (local_30 == (Mem *)0x0) goto LAB_00062b00;
        uVar5 = *(u32 *)(pExpr_00.iValue + 4);
        local_30->db = db;
        local_30->flags = 1;
        if ((uVar5 & 0x400) == 0) {
          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);
          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);
          aVar17 = unaff_s6;
          z = sqlite3MPrintf(db,(char *)pExpr);
          if (z == (char *)0x0) goto LAB_00062b04;
          if (local_30 != (Mem *)0x0) {
            aVar20.iValue = 1;
            sqlite3VdbeMemSetStr
                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));
          }
        }
        else {
          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;
          local_30->flags = 4;
          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;
        }
        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {
          aVar17.iValue = 1;
          pExpr = (Expr *)0x43;
          applyAffinity(local_30,'C','\x01');
        }
        else {
          aVar17.iValue = 1;
          pExpr = (Expr *)(int)(char)affinity;
          applyAffinity(local_30,affinity,'\x01');
        }
        if ((local_30->flags & 0x2c) != 0) {
          local_30->flags = local_30->flags & 0xfffd;
        }
        iVar6 = 0;
        psVar8 = local_30;
        if ((byte *)aVar16.zToken != (byte *)0x1) {
          if ((local_30->flags & 2) == 0) goto LAB_00062a94;
          pExpr = (Expr *)aVar16;
          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();
          psVar8 = local_30;
        }
      }
      else {
        if (bVar11 == 0xaa) {
          pExpr_00 = (anon_union_4_2_443a03b8_for_u)
                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;
          goto LAB_00062b54;
        }
        if (bVar11 == 0x77) {
          aVar20.iValue = 0x28;
          aVar17.zToken = (char *)0x0;
          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);
          if (psVar8 == (Mem *)0x0) {
LAB_00062b00:
            local_30 = (Mem *)0x0;
LAB_00062b04:
            uVar5._0_1_ = db->temp_store;
            uVar5._1_1_ = db->mallocFailed;
            uVar5._2_1_ = db->bBenignMalloc;
            uVar5._3_1_ = db->dfltLockMode;
            if ((uVar5 & 0xffff00) == 0) {
              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);
            }
            iVar6 = 7;
            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);
            goto LAB_00062a9c;
          }
          psVar8->db = db;
          iVar6 = 0;
          psVar8->flags = 1;
        }
        else if (bVar11 == 0x97) {
          aVar20.iValue = 0x28;
          aVar17.zToken = (char *)0x0;
          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);
          if (pMem == (Mem *)0x0) goto LAB_00062b00;
          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;
          pMem->db = db;
          iVar6 = iVar6 + 2;
          pMem->flags = 1;
          local_30 = pMem;
          if (iVar6 == 0) {
            pExpr_00.zToken = (char *)0x0;
            iVar10 = -1;
          }
          else {
            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);
            iVar10 = (uVar5 & 0x3fffffff) - 1;
            pExpr_00.iValue = iVar10 / 2;
          }
          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);
          aVar20.zToken = (char *)0x0;
          iVar6 = 0;
          aVar17 = pExpr_00;
          sqlite3VdbeMemSetStr
                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',
                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));
          psVar8 = local_30;
        }
        else if (bVar11 == 0xa7) {
          aVar20.iValue = 0x28;
          aVar17.zToken = (char *)0x0;
          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);
          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;
          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;
          psVar8->db = db;
          iVar6 = 0;
          psVar8->flags = 4;
          cVar3 = *(char *)(iVar10 + 4);
          (psVar8->u).nZero = 0;
          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');
        }
        else {
          iVar6 = 0;
          psVar8 = (Mem *)0x0;
        }
      }
    }
    *ppVal = psVar8;
  }
LAB_00062a9c:
  if (local_2c == *(Parse **)puVar4) {
    return iVar6;
  }
  pcVar27 = sqlite3ExprCompare;
  pParse = local_2c;
  puVar26 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  puVar21 = *(undefined4 **)(puVar26 + 0x92690);
  puStack_74 = puVar4;
  ppsStack_70 = ppVal;
  piStack_84 = (int *)*puVar21;
  aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;
  aVar18 = aVar17;
  iStack_7c = iVar6;
  aStack_78 = pExpr_00;
  aStack_6c = aVar19;
  aStack_68 = aVar23;
  aStack_64 = unaff_s6;
  iStack_60 = unaff_s7;
  pcStack_5c = pcVar27;
  if (pExpr == (Expr *)0x0) {
    iVar6 = 0;
    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;
  }
  else {
    iVar6 = 2;
    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;
    if ((pParse != (Parse *)0x0) && (*(char *)pExpr == -0x67)) {
      aVar18.iValue = 1;
      aStack_88.zToken = (char *)0x0;
      aVar16 = aVar17;
      valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,
                    in_stack_ffffff6c);
      if (aStack_88.zToken != (char *)0x0) {
        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);
        pVVar12 = pParse->pVdbe;
        if (aVar16.iValue < 0x20) {
          aVar18.zToken = (char *)(aVar16.iValue + -1);
          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;
        }
        else {
          pVVar12->expmask = pVVar12->expmask | 0x80000000;
        }
        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);
        if (psVar8 == (sqlite3_value *)0x0) {
          iVar6 = *(int *)(puVar26 + 0x92414);
          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);
          (*(code *)(iVar6 + -0x6be0))(0);
        }
        else {
          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);
          if (iVar6 == 3) {
            (**(code **)(puVar26 + 0x924c4))(psVar8);
          }
          aVar18.zToken = (char *)0x0;
          aVar16 = aStack_88;
          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);
          iVar10 = *(int *)(puVar26 + 0x92414);
          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);
          (*(code *)(iVar10 + -0x6be0))(psVar8);
          if (iVar6 == 0) {
            iVar6 = 0;
            goto LAB_00062fb8;
          }
        }
      }
    }
    uVar25 = *(uint *)((int)pExpr + 4);
    uVar5 = *(uint *)(aVar17.iValue + 4);
    uVar24 = uVar25 | uVar5;
    if ((uVar24 & 0x400) != 0) {
      iVar6 = 2;
      if ((uVar5 & 0x400 & uVar25) == 0) goto LAB_00062fb8;
      if (*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;
      goto LAB_00062f88;
    }
    bVar11 = pExpr->op;
    bVar13 = *aVar17.zToken;
    if (bVar11 == bVar13) {
      if (bVar11 == 0x47) goto LAB_00062fb4;
      if (((bVar11 & 0xfd) == 0xa4) ||
         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)) goto LAB_0006305c;
      if ((bVar11 == 0xa9) || (bVar11 == 0xa5)) {
        aVar16 = (anon_union_4_2_443a03b8_for_u)
                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;
        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);
        do {
          uVar9 = (uint)*pbVar14;
          if (uVar9 == (byte)*aVar16.zToken) {
            if (uVar9 == 0) goto code_r0x000632f4;
          }
          else {
            iVar6 = 2;
            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;
          }
          pbVar14 = pbVar14 + 1;
          aVar16.zToken = (char *)(aVar16.iValue + 1);
        } while( true );
      }
      if (bVar11 == 0x77) goto LAB_00062f88;
      aVar16 = (anon_union_4_2_443a03b8_for_u)
               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;
      if (bVar11 == 0x6f) {
        iVar6 = (**(code **)(puVar26 + 0x9254c))();
        if (iVar6 == 0) {
          uVar25 = *(uint *)((int)pExpr + 4);
          uVar5 = *(uint *)(aVar17.iValue + 4);
          goto LAB_0006305c;
        }
      }
      else if (((byte *)aVar16.zToken == (byte *)0x0) ||
              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {
LAB_0006305c:
        if (((uVar5 ^ uVar25) & 0x202) == 0) {
          iVar6 = 0;
          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;
          if ((uVar24 & 0x800) == 0) {
            if ((uVar24 & 8) == 0) {
              aVar18 = (anon_union_4_2_443a03b8_for_u)
                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;
              aVar16 = (anon_union_4_2_443a03b8_for_u)
                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;
              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,
                                         aVar20.iValue);
              if (iVar6 != 0) goto LAB_00062fb4;
              aVar18 = (anon_union_4_2_443a03b8_for_u)
                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;
            }
            else {
              aVar18 = (anon_union_4_2_443a03b8_for_u)
                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;
            }
            aVar16 = (anon_union_4_2_443a03b8_for_u)
                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;
            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);
            if (iVar6 == 0) {
              aVar16 = (anon_union_4_2_443a03b8_for_u)
                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;
              aVar18 = aVar20;
              iVar6 = sqlite3ExprListCompare
                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,
                                 aVar20.iValue);
              if (iVar6 == 0) {
                cVar3 = *(char *)pExpr;
                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {
LAB_00062f88:
                  iVar6 = 0;
                  goto LAB_00062fb8;
                }
                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&
                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))
                   ) {
                  iVar6 = 0;
                  if (cVar3 == '1') goto LAB_00062fb8;
                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))
                  goto LAB_00062f88;
                  iVar6 = 0;
                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;
                }
              }
            }
          }
        }
      }
      goto LAB_00062fb4;
    }
    if (bVar11 == 0x6f) {
      aVar16 = (anon_union_4_2_443a03b8_for_u)
               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;
      aVar18 = aVar17;
      iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue);
      if (1 < iVar6) {
        bVar13 = *aVar17.zToken;
        goto LAB_00062fa8;
      }
LAB_0006323c:
      iVar6 = 1;
      goto LAB_00062fb8;
    }
LAB_00062fa8:
    if (bVar13 == 0x6f) {
      aVar18 = (anon_union_4_2_443a03b8_for_u)
               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;
      iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);
      aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;
      if (iVar6 < 2) goto LAB_0006323c;
    }
  }
LAB_00062fb4:
  iVar6 = 2;
LAB_00062fb8:
  if (piStack_84 == (int *)*puVar21) {
    return iVar6;
  }
  piVar15 = piStack_84;
  (**(code **)(puVar26 + 0x92668))();
  if (piVar15 == (int *)0x0) {
    return (uint)((byte *)aVar16.zToken != (byte *)0x0);
  }
                    /* WARNING: Load size is inaccurate */
  if (((byte *)aVar16.zToken == (byte *)0x0) || (*piVar15 != *aVar16.iValue)) {
    return 1;
  }
  if (*piVar15 < 1) {
    return 0;
  }
  pA = (Expr *)piVar15[1];
  pB = *(Expr **)(aVar16.iValue + 4);
  if (*(byte *)(piVar15 + 3) == *(byte *)(aVar16.iValue + 0xc)) {
    iVar6 = 0;
    pbVar14 = (byte *)(aVar16.iValue + 0x14);
    piVar22 = piVar15 + 5;
    do {
      iVar10 = sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue);
      iVar6 = iVar6 + 1;
      if (iVar10 != 0) {
        return iVar10;
      }
      if (*piVar15 <= iVar6) {
        return 0;
      }
      pbVar1 = (byte *)(piVar22 + 2);
      pbVar2 = pbVar14 + 8;
      pA = (Expr *)*piVar22;
      pB = *(Expr **)pbVar14;
      pbVar14 = pbVar14 + 0x10;
      piVar22 = piVar22 + 4;
    } while (*pbVar1 == *pbVar2);
  }
  return 1;
code_r0x000632f4:
  if ((uint)((uVar25 & 0x1000000) != 0) == (uVar5 << 7) >> 0x1f) {
    if ((uVar25 & 0x1000000) != 0) {
      aVar18 = (anon_union_4_2_443a03b8_for_u)
               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue;
      aVar16 = (anon_union_4_2_443a03b8_for_u)
               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken;
      iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1);
      if (iVar6 != 0) goto LAB_00062fb4;
      uVar25 = *(uint *)((int)pExpr + 4);
      uVar5 = *(uint *)(aVar17.iValue + 4);
    }
    goto LAB_0006305c;
  }
  goto LAB_00062fb4;
}



uint FUN_0006290c(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)

{
  undefined *puVar1;
  uint uVar2;
  int iVar3;
  uint *puVar4;
  uint uVar5;
  byte bVar6;
  undefined4 *puVar7;
  int *piVar8;
  byte *pbVar9;
  byte *pbVar10;
  byte *pbVar11;
  undefined4 uVar12;
  byte *pbVar13;
  byte bVar14;
  byte *pbVar15;
  undefined4 *puVar16;
  int *piVar17;
  uint uVar18;
  char cVar20;
  int iVar19;
  byte *pbVar21;
  byte *unaff_s6;
  uint uVar22;
  int iVar23;
  int unaff_s7;
  uint uVar24;
  undefined *puVar25;
  code *pcVar26;
  byte *pbStack_88;
  int *piStack_84;
  uint uStack_7c;
  byte *pbStack_78;
  undefined *puStack_74;
  uint **ppuStack_70;
  byte *pbStack_6c;
  byte *pbStack_68;
  byte *pbStack_64;
  int iStack_60;
  code *pcStack_5c;
  uint **local_48;
  uint *local_30;
  undefined4 *local_2c;
  
  puVar1 = PTR___stack_chk_guard_000f5568;
  local_30 = (uint *)0x0;
  local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;
  for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));
      pbVar15 = *(byte **)(pbVar15 + 0xc)) {
  }
  if (bVar14 == 0xad) {
    bVar14 = pbVar15[2];
  }
  cVar20 = (char)param_4;
  if (bVar14 == 0x24) {
    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);
    pbVar21 = (byte *)(uVar2 & 0xff);
    param_2 = *(byte **)(pbVar15 + 0xc);
    local_48 = param_5;
    pbVar13 = pbVar21;
    uVar2 = FUN_0006290c(param_1);
    pbVar10 = param_3;
    if (*param_5 != (uint *)0x0) {
      FUN_0005095c(*param_5,pbVar21,1);
      pbVar10 = (byte *)0x1;
      param_2 = (byte *)(int)cVar20;
      FUN_000519d4(*param_5);
    }
  }
  else {
    pbVar10 = param_3;
    pbVar13 = param_4;
    pbVar21 = param_3;
    if (bVar14 == 0xaa) {
      pbVar15 = *(byte **)(pbVar15 + 0xc);
      bVar14 = *pbVar15;
      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {
        unaff_s7 = -1;
        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;
        goto LAB_000629b8;
      }
LAB_00062b54:
      local_48 = &local_30;
      param_2 = pbVar15;
      iVar3 = FUN_0006290c(param_1);
      puVar4 = local_30;
      if (iVar3 == 0) {
        uVar2 = 0;
        if (local_30 != (uint *)0x0) {
          (*(code *)(PTR_LAB_000f52ec + -0x4950))();
          if ((*(ushort *)(local_30 + 2) & 8) == 0) {
            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {
              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;
              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);
            }
            else {
              uVar18 = -local_30[1];
              local_30[1] = uVar18;
              *local_30 = -(uint)(uVar18 != 0) - *local_30;
            }
          }
          else {
            *local_30 = *local_30 ^ 0x80000000;
          }
          param_2 = (byte *)(int)cVar20;
          pbVar10 = param_3;
          FUN_000519d4();
          puVar4 = local_30;
        }
      }
      else {
LAB_00062a94:
        uVar2 = 0;
      }
    }
    else {
      unaff_s7 = 1;
      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;
LAB_000629b8:
      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {
        pbVar13 = (byte *)0x28;
        pbVar10 = (byte *)0x0;
        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);
        if (local_30 == (uint *)0x0) goto LAB_00062b00;
        uVar2 = *(uint *)(pbVar15 + 4);
        local_30[8] = param_1;
        *(undefined2 *)(local_30 + 2) = 1;
        if ((uVar2 & 0x400) == 0) {
          pbVar13 = *(byte **)(pbVar15 + 8);
          param_2 = PTR_DAT_000f52d4 + -0x7ff4;
          pbVar10 = unaff_s6;
          iVar3 = FUN_0004d30c(param_1);
          if (iVar3 == 0) goto LAB_00062b04;
          if (local_30 != (uint *)0x0) {
            pbVar13 = (byte *)0x1;
            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);
            FUN_0005b00c(local_30,iVar3,0xffffffff);
          }
        }
        else {
          iVar3 = *(int *)(pbVar15 + 8);
          *(undefined2 *)(local_30 + 2) = 4;
          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;
        }
        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {
          pbVar10 = (byte *)0x1;
          param_2 = (byte *)0x43;
          FUN_000519d4(local_30);
        }
        else {
          pbVar10 = (byte *)0x1;
          param_2 = (byte *)(int)cVar20;
          FUN_000519d4(local_30);
        }
        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {
          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;
        }
        uVar2 = 0;
        puVar4 = local_30;
        if (param_3 != (byte *)0x1) {
          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;
          param_2 = param_3;
          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();
          puVar4 = local_30;
        }
      }
      else {
        if (bVar14 == 0xaa) {
          pbVar15 = *(byte **)(pbVar15 + 0xc);
          goto LAB_00062b54;
        }
        if (bVar14 == 0x77) {
          pbVar13 = (byte *)0x28;
          pbVar10 = (byte *)0x0;
          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);
          if (puVar4 == (uint *)0x0) {
LAB_00062b00:
            local_30 = (uint *)0x0;
LAB_00062b04:
            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {
              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);
            }
            uVar2 = 7;
            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);
            goto LAB_00062a9c;
          }
          puVar4[8] = param_1;
          uVar2 = 0;
          *(undefined2 *)(puVar4 + 2) = 1;
        }
        else if (bVar14 == 0x97) {
          pbVar13 = (byte *)0x28;
          pbVar10 = (byte *)0x0;
          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);
          if (puVar4 == (uint *)0x0) goto LAB_00062b00;
          iVar3 = *(int *)(pbVar15 + 8);
          puVar4[8] = param_1;
          iVar3 = iVar3 + 2;
          *(undefined2 *)(puVar4 + 2) = 1;
          local_30 = puVar4;
          if (iVar3 == 0) {
            pbVar15 = (byte *)0x0;
            iVar19 = -1;
          }
          else {
            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);
            iVar19 = (uVar2 & 0x3fffffff) - 1;
            pbVar15 = (byte *)(iVar19 / 2);
          }
          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);
          pbVar13 = (byte *)0x0;
          uVar2 = 0;
          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);
          pbVar10 = pbVar15;
          FUN_0005b00c(puVar4);
          puVar4 = local_30;
        }
        else if (bVar14 == 0xa7) {
          pbVar13 = (byte *)0x28;
          pbVar10 = (byte *)0x0;
          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);
          if (puVar4 == (uint *)0x0) goto LAB_00062a94;
          iVar3 = *(int *)(pbVar15 + 8);
          puVar4[8] = param_1;
          uVar2 = 0;
          *(undefined2 *)(puVar4 + 2) = 4;
          cVar20 = *(char *)(iVar3 + 4);
          *puVar4 = 0;
          puVar4[1] = (uint)(cVar20 == '\0');
        }
        else {
          uVar2 = 0;
          puVar4 = (uint *)0x0;
        }
      }
    }
    *param_5 = puVar4;
  }
LAB_00062a9c:
  if (local_2c == *(undefined4 **)puVar1) {
    return uVar2;
  }
  pcVar26 = FUN_00062ed8;
  puVar7 = local_2c;
  puVar25 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  puVar16 = *(undefined4 **)(puVar25 + 0x92690);
  puStack_74 = puVar1;
  ppuStack_70 = param_5;
  piStack_84 = (int *)*puVar16;
  pbVar9 = param_2;
  pbVar11 = pbVar10;
  uStack_7c = uVar2;
  pbStack_78 = pbVar15;
  pbStack_6c = param_4;
  pbStack_68 = pbVar21;
  pbStack_64 = unaff_s6;
  iStack_60 = unaff_s7;
  pcStack_5c = pcVar26;
  if (param_2 == (byte *)0x0) {
    uVar2 = 0;
    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;
  }
  else {
    uVar2 = 2;
    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;
    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {
      pbVar11 = (byte *)0x1;
      pbStack_88 = (byte *)0x0;
      pbVar9 = pbVar10;
      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);
      if (pbStack_88 != (byte *)0x0) {
        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);
        iVar3 = puVar7[2];
        if ((int)pbVar9 < 0x20) {
          pbVar11 = pbVar9 + -1;
          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);
        }
        else {
          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;
        }
        iVar3 = FUN_00051a50(puVar7[0x38]);
        if (iVar3 == 0) {
          iVar3 = *(int *)(puVar25 + 0x92414);
          (*(code *)(iVar3 + -0x6be0))(pbStack_88);
          (*(code *)(iVar3 + -0x6be0))(0);
        }
        else {
          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);
          if (iVar19 == 3) {
            (**(code **)(puVar25 + 0x924c4))(iVar3);
          }
          pbVar11 = (byte *)0x0;
          pbVar9 = pbStack_88;
          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);
          iVar23 = *(int *)(puVar25 + 0x92414);
          (*(code *)(iVar23 + -0x6be0))(pbStack_88);
          (*(code *)(iVar23 + -0x6be0))(iVar3);
          if (iVar19 == 0) {
            uVar2 = 0;
            goto LAB_00062fb8;
          }
        }
      }
    }
    uVar24 = *(uint *)(param_2 + 4);
    uVar18 = *(uint *)(pbVar10 + 4);
    uVar22 = uVar24 | uVar18;
    if ((uVar22 & 0x400) != 0) {
      uVar2 = 2;
      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;
      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;
      goto LAB_00062f88;
    }
    bVar14 = *param_2;
    bVar6 = *pbVar10;
    if (bVar14 == bVar6) {
      if (bVar14 == 0x47) goto LAB_00062fb4;
      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))
      goto LAB_0006305c;
      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {
        pbVar9 = *(byte **)(pbVar10 + 8);
        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);
        do {
          uVar5 = (uint)*pbVar15;
          if (uVar5 == *pbVar9) {
            if (uVar5 == 0) goto code_r0x000632f4;
          }
          else {
            uVar2 = 2;
            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;
          }
          pbVar15 = pbVar15 + 1;
          pbVar9 = pbVar9 + 1;
        } while( true );
      }
      if (bVar14 == 0x77) goto LAB_00062f88;
      pbVar9 = *(byte **)(pbVar10 + 8);
      if (bVar14 == 0x6f) {
        iVar3 = (**(code **)(puVar25 + 0x9254c))();
        if (iVar3 == 0) {
          uVar24 = *(uint *)(param_2 + 4);
          uVar18 = *(uint *)(pbVar10 + 4);
          goto LAB_0006305c;
        }
      }
      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))
      {
LAB_0006305c:
        if (((uVar18 ^ uVar24) & 0x202) == 0) {
          uVar2 = 0;
          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;
          if ((uVar22 & 0x800) == 0) {
            if ((uVar22 & 8) == 0) {
              pbVar11 = *(byte **)(pbVar10 + 0xc);
              pbVar9 = *(byte **)(param_2 + 0xc);
              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);
              if (iVar3 != 0) goto LAB_00062fb4;
              pbVar11 = *(byte **)(pbVar10 + 0x10);
            }
            else {
              pbVar11 = *(byte **)(pbVar10 + 0x10);
            }
            pbVar9 = *(byte **)(param_2 + 0x10);
            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);
            if (iVar3 == 0) {
              pbVar9 = *(byte **)(pbVar10 + 0x14);
              pbVar11 = pbVar13;
              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);
              if (iVar3 == 0) {
                bVar14 = *param_2;
                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {
LAB_00062f88:
                  uVar2 = 0;
                  goto LAB_00062fb8;
                }
                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&
                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {
                  uVar2 = 0;
                  if (bVar14 == 0x31) goto LAB_00062fb8;
                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;
                  uVar2 = 0;
                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;
                }
              }
            }
          }
        }
      }
      goto LAB_00062fb4;
    }
    if (bVar14 == 0x6f) {
      pbVar9 = *(byte **)(param_2 + 0xc);
      pbVar11 = pbVar10;
      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);
      if (1 < iVar3) {
        bVar6 = *pbVar10;
        goto LAB_00062fa8;
      }
LAB_0006323c:
      uVar2 = 1;
      goto LAB_00062fb8;
    }
LAB_00062fa8:
    if (bVar6 == 0x6f) {
      pbVar11 = *(byte **)(pbVar10 + 0xc);
      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);
      pbVar9 = param_2;
      if (iVar3 < 2) goto LAB_0006323c;
    }
  }
LAB_00062fb4:
  uVar2 = 2;
LAB_00062fb8:
  if (piStack_84 == (int *)*puVar16) {
    return uVar2;
  }
  pcVar26 = *(code **)(puVar25 + 0x92668);
  piVar8 = piStack_84;
  (*pcVar26)();
  pcVar26 = pcVar26 + 0x99ef4;
  if (piVar8 == (int *)0x0) {
    return (uint)(pbVar9 != (byte *)0x0);
  }
  if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {
    return 1;
  }
  if (*piVar8 < 1) {
    return 0;
  }
  iVar3 = piVar8[1];
  uVar12 = *(undefined4 *)(pbVar9 + 4);
  if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {
    iVar19 = 0;
    pbVar15 = pbVar9 + 0x14;
    piVar17 = piVar8 + 5;
    do {
      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);
      iVar19 = iVar19 + 1;
      if (uVar2 != 0) {
        return uVar2;
      }
      if (*piVar8 <= iVar19) {
        return 0;
      }
      pbVar10 = (byte *)(piVar17 + 2);
      pbVar13 = pbVar15 + 8;
      iVar3 = *piVar17;
      uVar12 = *(undefined4 *)pbVar15;
      pbVar15 = pbVar15 + 0x10;
      piVar17 = piVar17 + 4;
    } while (*pbVar10 == *pbVar13);
  }
  return 1;
code_r0x000632f4:
  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {
    if ((uVar24 & 0x1000000) != 0) {
      pbVar11 = *(byte **)(pbVar10 + 0x2c);
      pbVar9 = *(byte **)(param_2 + 0x2c);
      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);
      if (iVar3 != 0) goto LAB_00062fb4;
      uVar24 = *(uint *)(param_2 + 4);
      uVar18 = *(uint *)(pbVar10 + 4);
    }
    goto LAB_0006305c;
  }
  goto LAB_00062fb4;
}


lui gp,0xa
addiu gp,gp,-0x566c
addu gp,gp,t9
addiu sp,sp,-0x58
li v0,0xab
li v1,0xb2
sw s2,0x38(sp)
sw s8,0x50(sp)
or s8,a0,zero
lw s2,-0x7d38(gp)
sw s3,0x3c(sp)
sw s5,0x44(sp)
or s5,a2,zero
sw s4,0x40(sp)
or s4,a3,zero
sw s1,0x34(sp)
or s1,a1,zero
sw gp,0x18(sp)
sw ra,0x54(sp)
sw s7,0x4c(sp)
sw s6,0x48(sp)
sw s0,0x30(sp)
sw zero,0x28(sp)
lw a0,0x0(s2)
lw s3,0x68(sp)
sw a0,0x2c(sp)
lbu s0,0x0(s1)
beq s0,v0,0x00062988
_nop
bne s0,v1,0x00062990
_nop
b 0x00062974
_lw s1,0xc(s1)
li v0,0xad
bne s0,v0,0x000629a0
_li v0,0x24
lbu s0,0x2(s1)
beq s0,v0,0x00062cb8
_li v0,0xaa
beq s0,v0,0x00062b38
_lw s6,-0x7fcc(gp)
li s7,0x1
addiu s6,s6,-0x543c
li v0,0x73
beq s0,v0,0x000629d4
_li v0,0x96
beq s0,v0,0x000629d4
_li v0,0x98
bne s0,v0,0x00062c64
_li v0,0xaa
lw t9,-0x7fb4(gp)
li a3,0x28
or a2,zero,zero
addiu t9,t9,0x7020
jalr t9
_or a0,s8,zero
lw gp,0x18(sp)
beq v0,zero,0x00062b00
_or a0,v0,zero
lw v0,0x4(s1)
li v1,0x1
sw s8,0x20(a0)
sh v1,0x8(a0)
andi v0,v0,0x400
beq v0,zero,0x00062c04
_sw a0,0x28(sp)
lw v0,0x8(s1)
li v1,0x4
sh v1,0x8(a0)
mult v0,s7
mflo v1
mfhi v0
sw v1,0x4(a0)
sw v0,0x0(a0)
li v0,0x98
beq s0,v0,0x00062be0
_li v0,0x96
beq s0,v0,0x00062be4
_li v0,0x41
lw t9,-0x7f94(gp)
li a2,0x1
addiu t9,t9,0x19d4
bal 0x000519d4
_seb a1,s4
lw gp,0x18(sp)
lw a0,0x28(sp)
lhu v0,0x8(a0)
andi v1,v0,0x2c
beq v1,zero,0x00062a78
_andi v0,v0,0xfffd
sh v0,0x8(a0)
li v0,0x1
beq s5,v0,0x00062a98
_or s0,zero,zero
lhu v0,0x8(a0)
andi v0,v0,0x2
bne v0,zero,0x00062c8c
_lw t9,-0x7fb8(gp)
or s0,zero,zero
sw a0,0x0(s3)
lw a0,0x2c(sp)
or v0,s0,zero
lw v1,0x0(s2)
bne a0,v1,0x00062ecc
_lw ra,0x54(sp)
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
lw t9,-0x7fb4(gp)
li a3,0x28
or a2,zero,zero
addiu t9,t9,0x7020
jalr t9
_or a0,s8,zero
lw gp,0x18(sp)
bne v0,zero,0x00062d3c
_or a0,v0,zero
sw zero,0x28(sp)
lw v0,0x50(s8)
lui v1,0xff
ori v1,v1,0xff00
and v0,v0,v1
beq v0,zero,0x00062d50
_lw t9,-0x7fb4(gp)
lw t9,-0x7fb4(gp)
li s0,0x7
addiu t9,t9,-0x6be0
jalr t9
_lw a0,0x28(sp)
b 0x00062a9c
_lw gp,0x18(sp)
lw s1,0xc(s1)
li v0,0x98
lbu s0,0x0(s1)
beq s0,v0,0x00062ca8
_li v0,0x96
beq s0,v0,0x00062cac
_lw s6,-0x7fd4(gp)
lw t9,-0x7fa0(gp)
addiu v0,sp,0x28
or a0,s8,zero
or a3,s4,zero
sw v0,0x10(sp)
addiu t9,t9,0x290c
or a2,s5,zero
bal 0x0006290c
_or a1,s1,zero
lw gp,0x18(sp)
or s0,v0,zero
bne v0,zero,0x00062a94
_lw a0,0x28(sp)
beq a0,zero,0x00062a98
_lw t9,-0x7fb4(gp)
addiu t9,t9,-0x4950
jalr t9
_nop
lw a0,0x28(sp)
lhu v1,0x8(a0)
andi v0,v1,0x8
beq v0,zero,0x00062e74
_lw gp,0x18(sp)
lw v0,0x0(a0)
lui v1,0x8000
xor v0,v0,v1
sw v0,0x0(a0)
lw t9,-0x7f94(gp)
or a2,s5,zero
addiu t9,t9,0x19d4
bal 0x000519d4
_seb a1,s4
lw gp,0x18(sp)
b 0x00062a98
_lw a0,0x28(sp)
li v0,0x41
bne s4,v0,0x00062a4c
_lw t9,-0x7f94(gp)
li a2,0x1
addiu t9,t9,0x19d4
bal 0x000519d4
_li a1,0x43
b 0x00062a60
_lw gp,0x18(sp)
lw a1,-0x7fcc(gp)
or a2,s6,zero
lw t9,-0x7f94(gp)
or a0,s8,zero
lw a3,0x8(s1)
addiu t9,t9,-0x2cf4
bal 0x0004d30c
_addiu a1,a1,-0x7ff4
beq v0,zero,0x00062b04
_lw gp,0x18(sp)
lw a0,0x28(sp)
beq a0,zero,0x00062a34
_lw v1,-0x7fb4(gp)
li a3,0x1
lw t9,-0x7fa0(gp)
li a2,-0x1
or a1,v0,zero
addiu v1,v1,0x67f4
addiu t9,t9,-0x4ff4
bal 0x0005b00c
_sw v1,0x10(sp)
lw gp,0x18(sp)
b 0x00062a34
_lw a0,0x28(sp)
beq s0,v0,0x00062ec4
_li v0,0x77
beq s0,v0,0x00062adc
_li v0,0x97
beq s0,v0,0x00062d64
_li v0,0xa7
beq s0,v0,0x00062e1c
_or a0,zero,zero
b 0x00062a98
_or s0,zero,zero
addiu t9,t9,-0x4b48
jalr t9
_or a1,s5,zero
lw gp,0x18(sp)
or s0,v0,zero
b 0x00062a98
_lw a0,0x28(sp)
lw s6,-0x7fd4(gp)
li s7,-0x1
b 0x000629b8
_addiu s6,s6,0x74bc
lw t9,-0x7fd8(gp)
or a1,zero,zero
addiu t9,t9,0x4c38
jalr t9
_lw a0,0x8(s1)
or a2,s5,zero
lw gp,0x18(sp)
andi s5,v0,0xff
lw a1,0xc(s1)
or a0,s8,zero
or a3,s5,zero
lw t9,-0x7fa0(gp)
addiu t9,t9,0x290c
bal 0x0006290c
_sw s3,0x10(sp)
lw a0,0x0(s3)
or s0,v0,zero
beq a0,zero,0x00062a9c
_lw gp,0x18(sp)
lw t9,-0x7f94(gp)
li a2,0x1
addiu t9,t9,0x95c
bal 0x0005095c
_or a1,s5,zero
li a2,0x1
lw gp,0x18(sp)
seb a1,s4
lw t9,-0x7f94(gp)
addiu t9,t9,0x19d4
bal 0x000519d4
_lw a0,0x0(s3)
b 0x00062a9c
_lw gp,0x18(sp)
sw s8,0x20(v0)
li v0,0x1
or s0,zero,zero
b 0x00062a98
_sh v0,0x8(a0)
addiu t9,t9,0x67b4
jalr t9
_or a0,s8,zero
b 0x00062b1c
_lw gp,0x18(sp)
lw t9,-0x7fb4(gp)
li a3,0x28
or a2,zero,zero
addiu t9,t9,0x7020
jalr t9
_or a0,s8,zero
lw gp,0x18(sp)
beq v0,zero,0x00062b00
_or s0,v0,zero
lw a1,0x8(s1)
sw s8,0x20(v0)
li v0,0x1
sw s0,0x28(sp)
addiu a1,a1,0x2
beq a1,zero,0x00062e68
_sh v0,0x8(s0)
lw t9,-0x7e18(gp)
or a0,a1,zero
jalr t9
_sw a1,0x24(sp)
ext v0,v0,0x0,0x1e
lw gp,0x18(sp)
lw a1,0x24(sp)
addiu a2,v0,-0x1
srl s1,a2,0x1f
addu s1,s1,a2
sra s1,s1,0x1
lw t9,-0x7fb4(gp)
addiu t9,t9,0x7d5c
jalr t9
_or a0,s8,zero
or a3,zero,zero
lw gp,0x18(sp)
or a1,v0,zero
or a0,s0,zero
or a2,s1,zero
or s0,zero,zero
lw v0,-0x7fb4(gp)
lw t9,-0x7fa0(gp)
addiu v0,v0,0x67f4
addiu t9,t9,-0x4ff4
bal 0x0005b00c
_sw v0,0x10(sp)
lw gp,0x18(sp)
b 0x00062a98
_lw a0,0x28(sp)
lw t9,-0x7fb4(gp)
li a3,0x28
or a2,zero,zero
addiu t9,t9,0x7020
jalr t9
_or a0,s8,zero
lw gp,0x18(sp)
beq v0,zero,0x00062a94
_or a0,v0,zero
lw v0,0x8(s1)
li v1,0x4
sw s8,0x20(a0)
or s0,zero,zero
sh v1,0x8(a0)
lb v0,0x4(v0)
sw zero,0x0(a0)
sltiu v0,v0,0x1
b 0x00062a98
_sw v0,0x4(a0)
or s1,zero,zero
b 0x00062dd0
_li a2,-0x1
lw v0,0x0(a0)
lui a2,0x8000
beq v0,a2,0x00062ea0
_lw a1,0x4(a0)
subu v1,zero,a1
subu v0,zero,v0
sltu a1,zero,v1
sw v1,0x4(a0)
subu v0,v0,a1
b 0x00062bc0
_sw v0,0x0(a0)
bne a1,zero,0x00062e84
_nop
andi v0,v1,0x3e40
ori v0,v0,0x8
sh v0,0x8(a0)
lw v0,-0x7fcc(gp)
ldc1 f0,0x26d0(v0)
b 0x00062bc0
_sdc1 f0,0x0(a0)
b 0x00062b54
_lw s1,0xc(s1)
lw t9,-0x7d60(gp)
jalr t9
_nop
(translation_unit "uint FUN_0006290c(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  byte bVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  byte *pbVar15;\n  undefined4 *puVar16;\n  int *piVar17;\n  uint uVar18;\n  char cVar20;\n  int iVar19;\n  byte *pbVar21;\n  byte *unaff_s6;\n  uint uVar22;\n  int iVar23;\n  int unaff_s7;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  byte *pbStack_88;\n  int *piStack_84;\n  uint uStack_7c;\n  byte *pbStack_78;\n  undefined *puStack_74;\n  uint **ppuStack_70;\n  byte *pbStack_6c;\n  byte *pbStack_68;\n  byte *pbStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uint **local_48;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000f5568;\n  local_30 = (uint *)0x0;\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }\n  if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }\n  cVar20 = (char)param_4;\n  if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }\nLAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar26 = FUN_00062ed8;\n  puVar7 = local_2c;\n  puVar25 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar16 = *(undefined4 **)(puVar25 + 0x92690);\n  puStack_74 = puVar1;\n  ppuStack_70 = param_5;\n  piStack_84 = (int *)*puVar16;\n  pbVar9 = param_2;\n  pbVar11 = pbVar10;\n  uStack_7c = uVar2;\n  pbStack_78 = pbVar15;\n  pbStack_6c = param_4;\n  pbStack_68 = pbVar21;\n  pbStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar26;\n  if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  uVar2 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x92668);\n  piVar8 = piStack_84;\n  (*pcVar26)();\n  pcVar26 = pcVar26 + 0x99ef4;\n  if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }\n  if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }\n  if (*piVar8 < 1) {\n    return 0;\n  }\n  iVar3 = piVar8[1];\n  uVar12 = *(undefined4 *)(pbVar9 + 4);\n  if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}\n\n" (function_definition "uint FUN_0006290c(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  byte bVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  byte *pbVar15;\n  undefined4 *puVar16;\n  int *piVar17;\n  uint uVar18;\n  char cVar20;\n  int iVar19;\n  byte *pbVar21;\n  byte *unaff_s6;\n  uint uVar22;\n  int iVar23;\n  int unaff_s7;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  byte *pbStack_88;\n  int *piStack_84;\n  uint uStack_7c;\n  byte *pbStack_78;\n  undefined *puStack_74;\n  uint **ppuStack_70;\n  byte *pbStack_6c;\n  byte *pbStack_68;\n  byte *pbStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uint **local_48;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000f5568;\n  local_30 = (uint *)0x0;\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }\n  if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }\n  cVar20 = (char)param_4;\n  if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }\nLAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar26 = FUN_00062ed8;\n  puVar7 = local_2c;\n  puVar25 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar16 = *(undefined4 **)(puVar25 + 0x92690);\n  puStack_74 = puVar1;\n  ppuStack_70 = param_5;\n  piStack_84 = (int *)*puVar16;\n  pbVar9 = param_2;\n  pbVar11 = pbVar10;\n  uStack_7c = uVar2;\n  pbStack_78 = pbVar15;\n  pbStack_6c = param_4;\n  pbStack_68 = pbVar21;\n  pbStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar26;\n  if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  uVar2 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x92668);\n  piVar8 = piStack_84;\n  (*pcVar26)();\n  pcVar26 = pcVar26 + 0x99ef4;\n  if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }\n  if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }\n  if (*piVar8 < 1) {\n    return 0;\n  }\n  iVar3 = piVar8[1];\n  uVar12 = *(undefined4 *)(pbVar9 + 4);\n  if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}" type_identifier (function_declarator "FUN_0006290c(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)" identifier (parameter_list "(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint **param_5" type_identifier (pointer_declarator "**param_5" * (pointer_declarator "*param_5" * identifier))) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  byte bVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  byte *pbVar15;\n  undefined4 *puVar16;\n  int *piVar17;\n  uint uVar18;\n  char cVar20;\n  int iVar19;\n  byte *pbVar21;\n  byte *unaff_s6;\n  uint uVar22;\n  int iVar23;\n  int unaff_s7;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  byte *pbStack_88;\n  int *piStack_84;\n  uint uStack_7c;\n  byte *pbStack_78;\n  undefined *puStack_74;\n  uint **ppuStack_70;\n  byte *pbStack_6c;\n  byte *pbStack_68;\n  byte *pbStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uint **local_48;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000f5568;\n  local_30 = (uint *)0x0;\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }\n  if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }\n  cVar20 = (char)param_4;\n  if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }\nLAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar26 = FUN_00062ed8;\n  puVar7 = local_2c;\n  puVar25 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar16 = *(undefined4 **)(puVar25 + 0x92690);\n  puStack_74 = puVar1;\n  ppuStack_70 = param_5;\n  piStack_84 = (int *)*puVar16;\n  pbVar9 = param_2;\n  pbVar11 = pbVar10;\n  uStack_7c = uVar2;\n  pbStack_78 = pbVar15;\n  pbStack_6c = param_4;\n  pbStack_68 = pbVar21;\n  pbStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar26;\n  if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  uVar2 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x92668);\n  piVar8 = piStack_84;\n  (*pcVar26)();\n  pcVar26 = pcVar26 + 0x99ef4;\n  if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }\n  if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }\n  if (*piVar8 < 1) {\n    return 0;\n  }\n  iVar3 = piVar8[1];\n  uVar12 = *(undefined4 *)(pbVar9 + 4);\n  if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "char cVar20;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int unaff_s7;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "byte *pbStack_88;" type_identifier (pointer_declarator "*pbStack_88" * identifier) ;) (declaration "int *piStack_84;" primitive_type (pointer_declarator "*piStack_84" * identifier) ;) (declaration "uint uStack_7c;" type_identifier identifier ;) (declaration "byte *pbStack_78;" type_identifier (pointer_declarator "*pbStack_78" * identifier) ;) (declaration "undefined *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "uint **ppuStack_70;" type_identifier (pointer_declarator "**ppuStack_70" * (pointer_declarator "*ppuStack_70" * identifier)) ;) (declaration "byte *pbStack_6c;" type_identifier (pointer_declarator "*pbStack_6c" * identifier) ;) (declaration "byte *pbStack_68;" type_identifier (pointer_declarator "*pbStack_68" * identifier) ;) (declaration "byte *pbStack_64;" type_identifier (pointer_declarator "*pbStack_64" * identifier) ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "uint **local_48;" type_identifier (pointer_declarator "**local_48" * (pointer_declarator "*local_48" * identifier)) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_2c = *(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))) ;) (for_statement "for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }" for ( (assignment_expression "pbVar15 = param_2" identifier = identifier) ; (parenthesized_expression "(bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2))" ( (comma_expression "bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2)" (assignment_expression "bVar14 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) , (binary_expression "bVar14 == 0xab || (bVar14 == 0xb2)" (binary_expression "bVar14 == 0xab" identifier == number_literal) || (parenthesized_expression "(bVar14 == 0xb2)" ( (binary_expression "bVar14 == 0xb2" identifier == number_literal) )))) )) ; (assignment_expression "pbVar15 = *(byte **)(pbVar15 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar15 + 0xc)" * (cast_expression "(byte **)(pbVar15 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar15 + 0xc)" ( (binary_expression "pbVar15 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n  }" { })) (if_statement "if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }" if (parenthesized_expression "(bVar14 == 0xad)" ( (binary_expression "bVar14 == 0xad" identifier == number_literal) )) (compound_statement "{\n    bVar14 = pbVar15[2];\n  }" { (expression_statement "bVar14 = pbVar15[2];" (assignment_expression "bVar14 = pbVar15[2]" identifier = (subscript_expression "pbVar15[2]" identifier [ number_literal ])) ;) })) (expression_statement "cVar20 = (char)param_4;" (assignment_expression "cVar20 = (char)param_4" identifier = (cast_expression "(char)param_4" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }" if (parenthesized_expression "(bVar14 == 0x24)" ( (binary_expression "bVar14 == 0x24" identifier == number_literal) )) (compound_statement "{\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }" { (expression_statement "uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);" (assignment_expression "uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x4c38))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x4c38)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x4c38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + 0x4c38)" ( (binary_expression "PTR_LAB_000f52c8 + 0x4c38" identifier + number_literal) )))) )) (argument_list "(*(undefined4 *)(pbVar15 + 8),0)" ( (pointer_expression "*(undefined4 *)(pbVar15 + 8)" * (cast_expression "(undefined4 *)(pbVar15 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15 + 8)" ( (binary_expression "pbVar15 + 8" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "pbVar21 = (byte *)(uVar2 & 0xff);" (assignment_expression "pbVar21 = (byte *)(uVar2 & 0xff)" identifier = (cast_expression "(byte *)(uVar2 & 0xff)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )))) ;) (expression_statement "param_2 = *(byte **)(pbVar15 + 0xc);" (assignment_expression "param_2 = *(byte **)(pbVar15 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar15 + 0xc)" * (cast_expression "(byte **)(pbVar15 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar15 + 0xc)" ( (binary_expression "pbVar15 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_48 = param_5;" (assignment_expression "local_48 = param_5" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar21;" (assignment_expression "pbVar13 = pbVar21" identifier = identifier) ;) (expression_statement "uVar2 = FUN_0006290c(param_1);" (assignment_expression "uVar2 = FUN_0006290c(param_1)" identifier = (call_expression "FUN_0006290c(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pbVar10 = param_3;" (assignment_expression "pbVar10 = param_3" identifier = identifier) ;) (if_statement "if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }" if (parenthesized_expression "(*param_5 != (uint *)0x0)" ( (binary_expression "*param_5 != (uint *)0x0" (pointer_expression "*param_5" * identifier) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }" { (expression_statement "FUN_0005095c(*param_5,pbVar21,1);" (call_expression "FUN_0005095c(*param_5,pbVar21,1)" identifier (argument_list "(*param_5,pbVar21,1)" ( (pointer_expression "*param_5" * identifier) , identifier , number_literal ))) ;) (expression_statement "pbVar10 = (byte *)0x1;" (assignment_expression "pbVar10 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (byte *)(int)cVar20;" (assignment_expression "param_2 = (byte *)(int)cVar20" identifier = (cast_expression "(byte *)(int)cVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_000519d4(*param_5);" (call_expression "FUN_000519d4(*param_5)" identifier (argument_list "(*param_5)" ( (pointer_expression "*param_5" * identifier) ))) ;) })) }) (else_clause "else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }" else (compound_statement "{\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }" { (expression_statement "pbVar10 = param_3;" (assignment_expression "pbVar10 = param_3" identifier = identifier) ;) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" identifier = identifier) ;) (expression_statement "pbVar21 = param_3;" (assignment_expression "pbVar21 = param_3" identifier = identifier) ;) (if_statement "if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }" if (parenthesized_expression "(bVar14 == 0xaa)" ( (binary_expression "bVar14 == 0xaa" identifier == number_literal) )) (compound_statement "{\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }" { (expression_statement "pbVar15 = *(byte **)(pbVar15 + 0xc);" (assignment_expression "pbVar15 = *(byte **)(pbVar15 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar15 + 0xc)" * (cast_expression "(byte **)(pbVar15 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar15 + 0xc)" ( (binary_expression "pbVar15 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar14 = *pbVar15;" (assignment_expression "bVar14 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (if_statement "if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }" if (parenthesized_expression "((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96))" ( (binary_expression "(bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)" (parenthesized_expression "(bVar14 == 0x98)" ( (binary_expression "bVar14 == 0x98" identifier == number_literal) )) || (parenthesized_expression "(unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)" ( (comma_expression "unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96" (assignment_expression "unaff_s6 = PTR_LAB_000f52cc" identifier = identifier) , (binary_expression "bVar14 == 0x96" identifier == number_literal)) ))) )) (compound_statement "{\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }" { (expression_statement "unaff_s7 = -1;" (assignment_expression "unaff_s7 = -1" identifier = number_literal) ;) (expression_statement "unaff_s6 = PTR_LAB_000f52cc + 0x74bc;" (assignment_expression "unaff_s6 = PTR_LAB_000f52cc + 0x74bc" identifier = (binary_expression "PTR_LAB_000f52cc + 0x74bc" identifier + number_literal)) ;) (goto_statement "goto LAB_000629b8;" goto statement_identifier ;) })) (labeled_statement "LAB_00062b54:\n      local_48 = &local_30;" statement_identifier : (expression_statement "local_48 = &local_30;" (assignment_expression "local_48 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;)) (expression_statement "param_2 = pbVar15;" (assignment_expression "param_2 = pbVar15" identifier = identifier) ;) (expression_statement "iVar3 = FUN_0006290c(param_1);" (assignment_expression "iVar3 = FUN_0006290c(param_1)" identifier = (call_expression "FUN_0006290c(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x4950))();" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x4950))()" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x4950))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x4950)" * (cast_expression "(code *)(PTR_LAB_000f52ec + -0x4950)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x4950)" ( (binary_expression "PTR_LAB_000f52ec + -0x4950" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (if_statement "if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" if (parenthesized_expression "((*(ushort *)(local_30 + 2) & 8) == 0)" ( (binary_expression "(*(ushort *)(local_30 + 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(local_30 + 2) & 8)" ( (binary_expression "*(ushort *)(local_30 + 2) & 8" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }" { (if_statement "if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }" if (parenthesized_expression "((*local_30 == 0x80000000) && (local_30[1] == 0))" ( (binary_expression "(*local_30 == 0x80000000) && (local_30[1] == 0)" (parenthesized_expression "(*local_30 == 0x80000000)" ( (binary_expression "*local_30 == 0x80000000" (pointer_expression "*local_30" * identifier) == number_literal) )) && (parenthesized_expression "(local_30[1] == 0)" ( (binary_expression "local_30[1] == 0" (subscript_expression "local_30[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }" { (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_30 + 2) & 0x3e40 | 8" (binary_expression "*(ushort *)(local_30 + 2) & 0x3e40" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);" (assignment_expression "*(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0)" (pointer_expression "*(longlong *)local_30" * (cast_expression "(longlong *)local_30" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(longlong *)(PTR_DAT_000f52d4 + 0x26d0)" * (cast_expression "(longlong *)(PTR_DAT_000f52d4 + 0x26d0)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52d4 + 0x26d0)" ( (binary_expression "PTR_DAT_000f52d4 + 0x26d0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }" else (compound_statement "{\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }" { (expression_statement "uVar18 = -local_30[1];" (assignment_expression "uVar18 = -local_30[1]" identifier = (unary_expression "-local_30[1]" - (subscript_expression "local_30[1]" identifier [ number_literal ]))) ;) (expression_statement "local_30[1] = uVar18;" (assignment_expression "local_30[1] = uVar18" (subscript_expression "local_30[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_30 = -(uint)(uVar18 != 0) - *local_30;" (assignment_expression "*local_30 = -(uint)(uVar18 != 0) - *local_30" (pointer_expression "*local_30" * identifier) = (binary_expression "-(uint)(uVar18 != 0) - *local_30" (unary_expression "-(uint)(uVar18 != 0)" - (call_expression "(uint)(uVar18 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )))) - (pointer_expression "*local_30" * identifier))) ;) }))) }) (else_clause "else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" else (compound_statement "{\n            *local_30 = *local_30 ^ 0x80000000;\n          }" { (expression_statement "*local_30 = *local_30 ^ 0x80000000;" (assignment_expression "*local_30 = *local_30 ^ 0x80000000" (pointer_expression "*local_30" * identifier) = (binary_expression "*local_30 ^ 0x80000000" (pointer_expression "*local_30" * identifier) ^ number_literal)) ;) }))) (expression_statement "param_2 = (byte *)(int)cVar20;" (assignment_expression "param_2 = (byte *)(int)cVar20" identifier = (cast_expression "(byte *)(int)cVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar10 = param_3;" (assignment_expression "pbVar10 = param_3" identifier = identifier) ;) (expression_statement "FUN_000519d4();" (call_expression "FUN_000519d4()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) })) }) (else_clause "else {\nLAB_00062a94:\n        uVar2 = 0;\n      }" else (compound_statement "{\nLAB_00062a94:\n        uVar2 = 0;\n      }" { (labeled_statement "LAB_00062a94:\n        uVar2 = 0;" statement_identifier : (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;)) }))) }) (else_clause "else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }" else (compound_statement "{\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }" { (expression_statement "unaff_s7 = 1;" (assignment_expression "unaff_s7 = 1" identifier = number_literal) ;) (expression_statement "unaff_s6 = PTR_DAT_000f52d4 + -0x543c;" (assignment_expression "unaff_s6 = PTR_DAT_000f52d4 + -0x543c" identifier = (binary_expression "PTR_DAT_000f52d4 + -0x543c" identifier + number_literal)) ;) (labeled_statement "LAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" statement_identifier : (if_statement "if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" if (parenthesized_expression "(((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98))" ( (binary_expression "((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)" (parenthesized_expression "((bVar14 == 0x73) || (bVar14 == 0x96))" ( (binary_expression "(bVar14 == 0x73) || (bVar14 == 0x96)" (parenthesized_expression "(bVar14 == 0x73)" ( (binary_expression "bVar14 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(bVar14 == 0x96)" ( (binary_expression "bVar14 == 0x96" identifier == number_literal) ))) )) || (parenthesized_expression "(bVar14 == 0x98)" ( (binary_expression "bVar14 == 0x98" identifier == number_literal) ))) )) (compound_statement "{\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }" { (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" identifier = (cast_expression "(byte *)0x28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (local_30 == (uint *)0x0) goto LAB_00062b00;" if (parenthesized_expression "(local_30 == (uint *)0x0)" ( (binary_expression "local_30 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062b00;" goto statement_identifier ;)) (expression_statement "uVar2 = *(uint *)(pbVar15 + 4);" (assignment_expression "uVar2 = *(uint *)(pbVar15 + 4)" identifier = (pointer_expression "*(uint *)(pbVar15 + 4)" * (cast_expression "(uint *)(pbVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15 + 4)" ( (binary_expression "pbVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_30[8] = param_1;" (assignment_expression "local_30[8] = param_1" (subscript_expression "local_30[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined2 *)(local_30 + 2) = 1;" (assignment_expression "*(undefined2 *)(local_30 + 2) = 1" (pointer_expression "*(undefined2 *)(local_30 + 2)" * (cast_expression "(undefined2 *)(local_30 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }" if (parenthesized_expression "((uVar2 & 0x400) == 0)" ( (binary_expression "(uVar2 & 0x400) == 0" (parenthesized_expression "(uVar2 & 0x400)" ( (binary_expression "uVar2 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }" { (expression_statement "pbVar13 = *(byte **)(pbVar15 + 8);" (assignment_expression "pbVar13 = *(byte **)(pbVar15 + 8)" identifier = (pointer_expression "*(byte **)(pbVar15 + 8)" * (cast_expression "(byte **)(pbVar15 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar15 + 8)" ( (binary_expression "pbVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "param_2 = PTR_DAT_000f52d4 + -0x7ff4;" (assignment_expression "param_2 = PTR_DAT_000f52d4 + -0x7ff4" identifier = (binary_expression "PTR_DAT_000f52d4 + -0x7ff4" identifier + number_literal)) ;) (expression_statement "pbVar10 = unaff_s6;" (assignment_expression "pbVar10 = unaff_s6" identifier = identifier) ;) (expression_statement "iVar3 = FUN_0004d30c(param_1);" (assignment_expression "iVar3 = FUN_0004d30c(param_1)" identifier = (call_expression "FUN_0004d30c(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_00062b04;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062b04;" goto statement_identifier ;)) (if_statement "if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }" { (expression_statement "pbVar13 = (byte *)0x1;" (assignment_expression "pbVar13 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);" (assignment_expression "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4)" identifier = (cast_expression "(uint **)(PTR_LAB_000f52ec + 0x67f4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x67f4)" ( (binary_expression "PTR_LAB_000f52ec + 0x67f4" identifier + number_literal) )))) ;) (expression_statement "FUN_0005b00c(local_30,iVar3,0xffffffff);" (call_expression "FUN_0005b00c(local_30,iVar3,0xffffffff)" identifier (argument_list "(local_30,iVar3,0xffffffff)" ( identifier , identifier , number_literal ))) ;) })) }) (else_clause "else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }" else (compound_statement "{\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }" { (expression_statement "iVar3 = *(int *)(pbVar15 + 8);" (assignment_expression "iVar3 = *(int *)(pbVar15 + 8)" identifier = (pointer_expression "*(int *)(pbVar15 + 8)" * (cast_expression "(int *)(pbVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15 + 8)" ( (binary_expression "pbVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined2 *)(local_30 + 2) = 4;" (assignment_expression "*(undefined2 *)(local_30 + 2) = 4" (pointer_expression "*(undefined2 *)(local_30 + 2)" * (cast_expression "(undefined2 *)(local_30 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;" (assignment_expression "*(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7" (pointer_expression "*(longlong *)local_30" * (cast_expression "(longlong *)local_30" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(longlong)iVar3 * (longlong)unaff_s7" (cast_expression "(longlong)iVar3" ( (type_descriptor "longlong" type_identifier) ) identifier) * (cast_expression "(longlong)unaff_s7" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) }))) (if_statement "if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }" if (parenthesized_expression "(((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41))" ( (binary_expression "((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)" (parenthesized_expression "((bVar14 == 0x98) || (bVar14 == 0x96))" ( (binary_expression "(bVar14 == 0x98) || (bVar14 == 0x96)" (parenthesized_expression "(bVar14 == 0x98)" ( (binary_expression "bVar14 == 0x98" identifier == number_literal) )) || (parenthesized_expression "(bVar14 == 0x96)" ( (binary_expression "bVar14 == 0x96" identifier == number_literal) ))) )) && (parenthesized_expression "(param_4 == (byte *)0x41)" ( (binary_expression "param_4 == (byte *)0x41" identifier == (cast_expression "(byte *)0x41" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }" { (expression_statement "pbVar10 = (byte *)0x1;" (assignment_expression "pbVar10 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (byte *)0x43;" (assignment_expression "param_2 = (byte *)0x43" identifier = (cast_expression "(byte *)0x43" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000519d4(local_30);" (call_expression "FUN_000519d4(local_30)" identifier (argument_list "(local_30)" ( identifier ))) ;) }) (else_clause "else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }" else (compound_statement "{\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }" { (expression_statement "pbVar10 = (byte *)0x1;" (assignment_expression "pbVar10 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (byte *)(int)cVar20;" (assignment_expression "param_2 = (byte *)(int)cVar20" identifier = (cast_expression "(byte *)(int)cVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_000519d4(local_30);" (call_expression "FUN_000519d4(local_30)" identifier (argument_list "(local_30)" ( identifier ))) ;) }))) (if_statement "if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }" if (parenthesized_expression "((*(ushort *)(local_30 + 2) & 0x2c) != 0)" ( (binary_expression "(*(ushort *)(local_30 + 2) & 0x2c) != 0" (parenthesized_expression "(*(ushort *)(local_30 + 2) & 0x2c)" ( (binary_expression "*(ushort *)(local_30 + 2) & 0x2c" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }" { (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal)) ;) })) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) (if_statement "if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }" if (parenthesized_expression "(param_3 != (byte *)0x1)" ( (binary_expression "param_3 != (byte *)0x1" identifier != (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }" { (if_statement "if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;" if (parenthesized_expression "((local_30[2] & 0x20000) == 0)" ( (binary_expression "(local_30[2] & 0x20000) == 0" (parenthesized_expression "(local_30[2] & 0x20000)" ( (binary_expression "local_30[2] & 0x20000" (subscript_expression "local_30[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00062a94;" goto statement_identifier ;)) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (expression_statement "uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();" (assignment_expression "uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))()" identifier = (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4b48))()" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4b48))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4b48)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4b48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4b48)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4b48" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) })) }) (else_clause "else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" else (compound_statement "{\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" { (if_statement "if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }" if (parenthesized_expression "(bVar14 == 0xaa)" ( (binary_expression "bVar14 == 0xaa" identifier == number_literal) )) (compound_statement "{\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }" { (expression_statement "pbVar15 = *(byte **)(pbVar15 + 0xc);" (assignment_expression "pbVar15 = *(byte **)(pbVar15 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar15 + 0xc)" * (cast_expression "(byte **)(pbVar15 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar15 + 0xc)" ( (binary_expression "pbVar15 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00062b54;" goto statement_identifier ;) })) (if_statement "if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" if (parenthesized_expression "(bVar14 == 0x77)" ( (binary_expression "bVar14 == 0x77" identifier == number_literal) )) (compound_statement "{\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }" { (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" identifier = (cast_expression "(byte *)0x28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }" { (labeled_statement "LAB_00062b00:\n            local_30 = (uint *)0x0;" statement_identifier : (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }" statement_identifier : (if_statement "if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }" if (parenthesized_expression "((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0x50) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x50) & 0xffff00)" ( (binary_expression "*(uint *)(param_1 + 0x50) & 0xffff00" (pointer_expression "*(uint *)(param_1 + 0x50)" * (cast_expression "(uint *)(param_1 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x67b4))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x67b4)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x67b4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x67b4)" ( (binary_expression "PTR_LAB_000f52ec + 0x67b4" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) }))) (expression_statement "uVar2 = 7;" (assignment_expression "uVar2 = 7" identifier = number_literal) ;) (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x6be0))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x6be0)" * (cast_expression "(code *)(PTR_LAB_000f52ec + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x6be0)" ( (binary_expression "PTR_LAB_000f52ec + -0x6be0" identifier + number_literal) )))) )) (argument_list "(local_30)" ( identifier ))) ;) (goto_statement "goto LAB_00062a9c;" goto statement_identifier ;) })) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "*(undefined2 *)(puVar4 + 2) = 1;" (assignment_expression "*(undefined2 *)(puVar4 + 2) = 1" (pointer_expression "*(undefined2 *)(puVar4 + 2)" * (cast_expression "(undefined2 *)(puVar4 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" else (if_statement "if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" if (parenthesized_expression "(bVar14 == 0x97)" ( (binary_expression "bVar14 == 0x97" identifier == number_literal) )) (compound_statement "{\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }" { (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" identifier = (cast_expression "(byte *)0x28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (puVar4 == (uint *)0x0) goto LAB_00062b00;" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062b00;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pbVar15 + 8);" (assignment_expression "iVar3 = *(int *)(pbVar15 + 8)" identifier = (pointer_expression "*(int *)(pbVar15 + 8)" * (cast_expression "(int *)(pbVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15 + 8)" ( (binary_expression "pbVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = iVar3 + 2;" (assignment_expression "iVar3 = iVar3 + 2" identifier = (binary_expression "iVar3 + 2" identifier + number_literal)) ;) (expression_statement "*(undefined2 *)(puVar4 + 2) = 1;" (assignment_expression "*(undefined2 *)(puVar4 + 2) = 1" (pointer_expression "*(undefined2 *)(puVar4 + 2)" * (cast_expression "(undefined2 *)(puVar4 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_30 = puVar4;" (assignment_expression "local_30 = puVar4" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }" { (expression_statement "pbVar15 = (byte *)0x0;" (assignment_expression "pbVar15 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }" else (compound_statement "{\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }" { (expression_statement "uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);" (assignment_expression "uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000f5488)(iVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000f5488)" ( (pointer_expression "*(code *)PTR_strlen_000f5488" * (cast_expression "(code *)PTR_strlen_000f5488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "iVar19 = (uVar2 & 0x3fffffff) - 1;" (assignment_expression "iVar19 = (uVar2 & 0x3fffffff) - 1" identifier = (binary_expression "(uVar2 & 0x3fffffff) - 1" (parenthesized_expression "(uVar2 & 0x3fffffff)" ( (binary_expression "uVar2 & 0x3fffffff" identifier & number_literal) )) - number_literal)) ;) (expression_statement "pbVar15 = (byte *)(iVar19 / 2);" (assignment_expression "pbVar15 = (byte *)(iVar19 / 2)" identifier = (cast_expression "(byte *)(iVar19 / 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 / 2)" ( (binary_expression "iVar19 / 2" identifier / number_literal) )))) ;) }))) (expression_statement "param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);" (assignment_expression "param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19)" identifier = (cast_expression "(byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7d5c))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7d5c)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7d5c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7d5c)" ( (binary_expression "PTR_LAB_000f52ec + 0x7d5c" identifier + number_literal) )))) )) (argument_list "(param_1,iVar3,iVar19)" ( identifier , identifier , identifier ))))) ;) (expression_statement "pbVar13 = (byte *)0x0;" (assignment_expression "pbVar13 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);" (assignment_expression "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4)" identifier = (cast_expression "(uint **)(PTR_LAB_000f52ec + 0x67f4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x67f4)" ( (binary_expression "PTR_LAB_000f52ec + 0x67f4" identifier + number_literal) )))) ;) (expression_statement "pbVar10 = pbVar15;" (assignment_expression "pbVar10 = pbVar15" identifier = identifier) ;) (expression_statement "FUN_0005b00c(puVar4);" (call_expression "FUN_0005b00c(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) }) (else_clause "else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" else (if_statement "if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" if (parenthesized_expression "(bVar14 == 0xa7)" ( (binary_expression "bVar14 == 0xa7" identifier == number_literal) )) (compound_statement "{\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }" { (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" identifier = (cast_expression "(byte *)0x28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (puVar4 == (uint *)0x0) goto LAB_00062a94;" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062a94;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pbVar15 + 8);" (assignment_expression "iVar3 = *(int *)(pbVar15 + 8)" identifier = (pointer_expression "*(int *)(pbVar15 + 8)" * (cast_expression "(int *)(pbVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15 + 8)" ( (binary_expression "pbVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "*(undefined2 *)(puVar4 + 2) = 4;" (assignment_expression "*(undefined2 *)(puVar4 + 2) = 4" (pointer_expression "*(undefined2 *)(puVar4 + 2)" * (cast_expression "(undefined2 *)(puVar4 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar20 = *(char *)(iVar3 + 4);" (assignment_expression "cVar20 = *(char *)(iVar3 + 4)" identifier = (pointer_expression "*(char *)(iVar3 + 4)" * (cast_expression "(char *)(iVar3 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = (uint)(cVar20 == '\0');" (assignment_expression "puVar4[1] = (uint)(cVar20 == '\0')" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (call_expression "(uint)(cVar20 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar20 == '\0')" ( (binary_expression "cVar20 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ;) }) (else_clause "else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" else (compound_statement "{\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = (uint *)0x0;" (assignment_expression "puVar4 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))))) })))) }))) (expression_statement "*param_5 = puVar4;" (assignment_expression "*param_5 = puVar4" (pointer_expression "*param_5" * identifier) = identifier) ;) }))) (labeled_statement "LAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_2c == *(undefined4 **)puVar1)" ( (binary_expression "local_2c == *(undefined4 **)puVar1" identifier == (pointer_expression "*(undefined4 **)puVar1" * (cast_expression "(undefined4 **)puVar1" ( (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 "pcVar26 = FUN_00062ed8;" (assignment_expression "pcVar26 = FUN_00062ed8" identifier = identifier) ;) (expression_statement "puVar7 = local_2c;" (assignment_expression "puVar7 = local_2c" identifier = identifier) ;) (expression_statement "puVar25 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar25 = 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 "puVar16 = *(undefined4 **)(puVar25 + 0x92690);" (assignment_expression "puVar16 = *(undefined4 **)(puVar25 + 0x92690)" identifier = (pointer_expression "*(undefined4 **)(puVar25 + 0x92690)" * (cast_expression "(undefined4 **)(puVar25 + 0x92690)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x92690)" ( (binary_expression "puVar25 + 0x92690" identifier + number_literal) ))))) ;) (expression_statement "puStack_74 = puVar1;" (assignment_expression "puStack_74 = puVar1" identifier = identifier) ;) (expression_statement "ppuStack_70 = param_5;" (assignment_expression "ppuStack_70 = param_5" identifier = identifier) ;) (expression_statement "piStack_84 = (int *)*puVar16;" (assignment_expression "piStack_84 = (int *)*puVar16" identifier = (cast_expression "(int *)*puVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (expression_statement "uStack_7c = uVar2;" (assignment_expression "uStack_7c = uVar2" identifier = identifier) ;) (expression_statement "pbStack_78 = pbVar15;" (assignment_expression "pbStack_78 = pbVar15" identifier = identifier) ;) (expression_statement "pbStack_6c = param_4;" (assignment_expression "pbStack_6c = param_4" identifier = identifier) ;) (expression_statement "pbStack_68 = pbVar21;" (assignment_expression "pbStack_68 = pbVar21" identifier = identifier) ;) (expression_statement "pbStack_64 = unaff_s6;" (assignment_expression "pbStack_64 = unaff_s6" identifier = identifier) ;) (expression_statement "iStack_60 = unaff_s7;" (assignment_expression "iStack_60 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar26;" (assignment_expression "pcStack_5c = pcVar26" identifier = identifier) ;) (if_statement "if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;" if (parenthesized_expression "(pbVar10 == (byte *)0x0)" ( (binary_expression "pbVar10 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }" else (compound_statement "{\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }" { (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (if_statement "if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;" if (parenthesized_expression "(pbVar10 == (byte *)0x0)" ( (binary_expression "pbVar10 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99))" ( (binary_expression "(puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)" (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*param_2 == 0x99)" ( (binary_expression "*param_2 == 0x99" (pointer_expression "*param_2" * identifier) == number_literal) ))) )) (compound_statement "{\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }" { (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbStack_88 = (byte *)0x0;" (assignment_expression "pbStack_88 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) (expression_statement "FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);" (call_expression "FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88)" identifier (argument_list "(*puVar7,pbVar10,1,0x41,&pbStack_88)" ( (pointer_expression "*puVar7" * identifier) , identifier , number_literal , number_literal , (pointer_expression "&pbStack_88" & identifier) ))) ;) (if_statement "if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }" if (parenthesized_expression "(pbStack_88 != (byte *)0x0)" ( (binary_expression "pbStack_88 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }" { (expression_statement "pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);" (assignment_expression "pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20)" identifier = (cast_expression "(byte *)(int)*(short *)(param_2 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(short *)(param_2 + 0x20)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(param_2 + 0x20)" * (cast_expression "(short *)(param_2 + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))))) ;) (expression_statement "iVar3 = puVar7[2];" (assignment_expression "iVar3 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (if_statement "if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }" if (parenthesized_expression "((int)pbVar9 < 0x20)" ( (binary_expression "(int)pbVar9 < 0x20" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }" { (expression_statement "pbVar11 = pbVar9 + -1;" (assignment_expression "pbVar11 = pbVar9 + -1" identifier = (binary_expression "pbVar9 + -1" identifier + number_literal)) ;) (expression_statement "*(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);" (assignment_expression "*(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0)" (pointer_expression "*(uint *)(iVar3 + 0xd0)" * (cast_expression "(uint *)(iVar3 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd0)" ( (binary_expression "iVar3 + 0xd0" identifier + number_literal) )))) = (binary_expression "1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0)" (binary_expression "1 << ((uint)pbVar11 & 0x1f)" number_literal << (parenthesized_expression "((uint)pbVar11 & 0x1f)" ( (binary_expression "(uint)pbVar11 & 0x1f" (cast_expression "(uint)pbVar11" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) | (pointer_expression "*(uint *)(iVar3 + 0xd0)" * (cast_expression "(uint *)(iVar3 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd0)" ( (binary_expression "iVar3 + 0xd0" identifier + number_literal) )))))) ;) }) (else_clause "else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }" else (compound_statement "{\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }" { (expression_statement "*(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;" (assignment_expression "*(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000" (pointer_expression "*(uint *)(iVar3 + 0xd0)" * (cast_expression "(uint *)(iVar3 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd0)" ( (binary_expression "iVar3 + 0xd0" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0xd0) | 0x80000000" (pointer_expression "*(uint *)(iVar3 + 0xd0)" * (cast_expression "(uint *)(iVar3 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd0)" ( (binary_expression "iVar3 + 0xd0" identifier + number_literal) )))) | number_literal)) ;) }))) (expression_statement "iVar3 = FUN_00051a50(puVar7[0x38]);" (assignment_expression "iVar3 = FUN_00051a50(puVar7[0x38])" identifier = (call_expression "FUN_00051a50(puVar7[0x38])" identifier (argument_list "(puVar7[0x38])" ( (subscript_expression "puVar7[0x38]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }" { (expression_statement "iVar3 = *(int *)(puVar25 + 0x92414);" (assignment_expression "iVar3 = *(int *)(puVar25 + 0x92414)" identifier = (pointer_expression "*(int *)(puVar25 + 0x92414)" * (cast_expression "(int *)(puVar25 + 0x92414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x92414)" ( (binary_expression "puVar25 + 0x92414" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(iVar3 + -0x6be0))(pbStack_88);" (call_expression "(*(code *)(iVar3 + -0x6be0))(pbStack_88)" (parenthesized_expression "(*(code *)(iVar3 + -0x6be0))" ( (pointer_expression "*(code *)(iVar3 + -0x6be0)" * (cast_expression "(code *)(iVar3 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x6be0)" ( (binary_expression "iVar3 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(pbStack_88)" ( identifier ))) ;) (expression_statement "(*(code *)(iVar3 + -0x6be0))(0);" (call_expression "(*(code *)(iVar3 + -0x6be0))(0)" (parenthesized_expression "(*(code *)(iVar3 + -0x6be0))" ( (pointer_expression "*(code *)(iVar3 + -0x6be0)" * (cast_expression "(code *)(iVar3 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x6be0)" ( (binary_expression "iVar3 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }" else (compound_statement "{\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }" { (expression_statement "iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);" (assignment_expression "iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3)" identifier = (call_expression "(**(code **)(puVar25 + 0x92614))(iVar3)" (parenthesized_expression "(**(code **)(puVar25 + 0x92614))" ( (pointer_expression "**(code **)(puVar25 + 0x92614)" * (pointer_expression "*(code **)(puVar25 + 0x92614)" * (cast_expression "(code **)(puVar25 + 0x92614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x92614)" ( (binary_expression "puVar25 + 0x92614" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }" if (parenthesized_expression "(iVar19 == 3)" ( (binary_expression "iVar19 == 3" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }" { (expression_statement "(**(code **)(puVar25 + 0x924c4))(iVar3);" (call_expression "(**(code **)(puVar25 + 0x924c4))(iVar3)" (parenthesized_expression "(**(code **)(puVar25 + 0x924c4))" ( (pointer_expression "**(code **)(puVar25 + 0x924c4)" * (pointer_expression "*(code **)(puVar25 + 0x924c4)" * (cast_expression "(code **)(puVar25 + 0x924c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x924c4)" ( (binary_expression "puVar25 + 0x924c4" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) })) (expression_statement "pbVar11 = (byte *)0x0;" (assignment_expression "pbVar11 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar9 = pbStack_88;" (assignment_expression "pbVar9 = pbStack_88" identifier = identifier) ;) (expression_statement "iVar19 = FUN_0004f704(iVar3,pbStack_88,0);" (assignment_expression "iVar19 = FUN_0004f704(iVar3,pbStack_88,0)" identifier = (call_expression "FUN_0004f704(iVar3,pbStack_88,0)" identifier (argument_list "(iVar3,pbStack_88,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar23 = *(int *)(puVar25 + 0x92414);" (assignment_expression "iVar23 = *(int *)(puVar25 + 0x92414)" identifier = (pointer_expression "*(int *)(puVar25 + 0x92414)" * (cast_expression "(int *)(puVar25 + 0x92414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x92414)" ( (binary_expression "puVar25 + 0x92414" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(iVar23 + -0x6be0))(pbStack_88);" (call_expression "(*(code *)(iVar23 + -0x6be0))(pbStack_88)" (parenthesized_expression "(*(code *)(iVar23 + -0x6be0))" ( (pointer_expression "*(code *)(iVar23 + -0x6be0)" * (cast_expression "(code *)(iVar23 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x6be0)" ( (binary_expression "iVar23 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(pbStack_88)" ( identifier ))) ;) (expression_statement "(*(code *)(iVar23 + -0x6be0))(iVar3);" (call_expression "(*(code *)(iVar23 + -0x6be0))(iVar3)" (parenthesized_expression "(*(code *)(iVar23 + -0x6be0))" ( (pointer_expression "*(code *)(iVar23 + -0x6be0)" * (cast_expression "(code *)(iVar23 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x6be0)" ( (binary_expression "iVar23 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;) })) }))) })) })) (expression_statement "uVar24 = *(uint *)(param_2 + 4);" (assignment_expression "uVar24 = *(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 "uVar18 = *(uint *)(pbVar10 + 4);" (assignment_expression "uVar18 = *(uint *)(pbVar10 + 4)" identifier = (pointer_expression "*(uint *)(pbVar10 + 4)" * (cast_expression "(uint *)(pbVar10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 4)" ( (binary_expression "pbVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = uVar24 | uVar18;" (assignment_expression "uVar22 = uVar24 | uVar18" identifier = (binary_expression "uVar24 | uVar18" identifier | identifier)) ;) (if_statement "if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }" if (parenthesized_expression "((uVar22 & 0x400) != 0)" ( (binary_expression "(uVar22 & 0x400) != 0" (parenthesized_expression "(uVar22 & 0x400)" ( (binary_expression "uVar22 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }" { (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (if_statement "if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;" if (parenthesized_expression "((uVar18 & 0x400 & uVar24) == 0)" ( (binary_expression "(uVar18 & 0x400 & uVar24) == 0" (parenthesized_expression "(uVar18 & 0x400 & uVar24)" ( (binary_expression "uVar18 & 0x400 & uVar24" (binary_expression "uVar18 & 0x400" identifier & number_literal) & identifier) )) == number_literal) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;" if (parenthesized_expression "(*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8))" ( (binary_expression "*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) != (pointer_expression "*(int *)(pbVar10 + 8)" * (cast_expression "(int *)(pbVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 8)" ( (binary_expression "pbVar10 + 8" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (goto_statement "goto LAB_00062f88;" goto statement_identifier ;) })) (expression_statement "bVar14 = *param_2;" (assignment_expression "bVar14 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "bVar6 = *pbVar10;" (assignment_expression "bVar6 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (if_statement "if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }" if (parenthesized_expression "(bVar14 == bVar6)" ( (binary_expression "bVar14 == bVar6" identifier == identifier) )) (compound_statement "{\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }" { (if_statement "if (bVar14 == 0x47) goto LAB_00062fb4;" if (parenthesized_expression "(bVar14 == 0x47)" ( (binary_expression "bVar14 == 0x47" identifier == number_literal) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (if_statement "if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;" if (parenthesized_expression "(((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))" ( (binary_expression "((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0)" (parenthesized_expression "((bVar14 & 0xfd) == 0xa4)" ( (binary_expression "(bVar14 & 0xfd) == 0xa4" (parenthesized_expression "(bVar14 & 0xfd)" ( (binary_expression "bVar14 & 0xfd" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0)" ( (comma_expression "pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0" (assignment_expression "pbVar15 = *(byte **)(param_2 + 8)" identifier = (pointer_expression "*(byte **)(param_2 + 8)" * (cast_expression "(byte **)(param_2 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) , (binary_expression "pbVar15 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0006305c;" goto statement_identifier ;)) (if_statement "if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }" if (parenthesized_expression "((bVar14 == 0xa9) || (bVar14 == 0xa5))" ( (binary_expression "(bVar14 == 0xa9) || (bVar14 == 0xa5)" (parenthesized_expression "(bVar14 == 0xa9)" ( (binary_expression "bVar14 == 0xa9" identifier == number_literal) )) || (parenthesized_expression "(bVar14 == 0xa5)" ( (binary_expression "bVar14 == 0xa5" identifier == number_literal) ))) )) (compound_statement "{\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }" { (expression_statement "pbVar9 = *(byte **)(pbVar10 + 8);" (assignment_expression "pbVar9 = *(byte **)(pbVar10 + 8)" identifier = (pointer_expression "*(byte **)(pbVar10 + 8)" * (cast_expression "(byte **)(pbVar10 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 8)" ( (binary_expression "pbVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);" (assignment_expression "pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac)" identifier = (cast_expression "(byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x923fc) + 0x25ac)" ( (binary_expression "*(int *)(puVar25 + 0x923fc) + 0x25ac" (pointer_expression "*(int *)(puVar25 + 0x923fc)" * (cast_expression "(int *)(puVar25 + 0x923fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x923fc)" ( (binary_expression "puVar25 + 0x923fc" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );" do (compound_statement "{\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        }" { (expression_statement "uVar5 = (uint)*pbVar15;" (assignment_expression "uVar5 = (uint)*pbVar15" identifier = (binary_expression "(uint)*pbVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }" if (parenthesized_expression "(uVar5 == *pbVar9)" ( (binary_expression "uVar5 == *pbVar9" identifier == (pointer_expression "*pbVar9" * identifier)) )) (compound_statement "{\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }" { (if_statement "if (uVar5 == 0) goto code_r0x000632f4;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000632f4;" goto statement_identifier ;)) }) (else_clause "else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }" else (compound_statement "{\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }" { (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (if_statement "if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;" if (parenthesized_expression "(pbVar11[uVar5] != pbVar11[*pbVar9])" ( (binary_expression "pbVar11[uVar5] != pbVar11[*pbVar9]" (subscript_expression "pbVar11[uVar5]" identifier [ identifier ]) != (subscript_expression "pbVar11[*pbVar9]" identifier [ (pointer_expression "*pbVar9" * identifier) ])) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) }))) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (bVar14 == 0x77) goto LAB_00062f88;" if (parenthesized_expression "(bVar14 == 0x77)" ( (binary_expression "bVar14 == 0x77" identifier == number_literal) )) (goto_statement "goto LAB_00062f88;" goto statement_identifier ;)) (expression_statement "pbVar9 = *(byte **)(pbVar10 + 8);" (assignment_expression "pbVar9 = *(byte **)(pbVar10 + 8)" identifier = (pointer_expression "*(byte **)(pbVar10 + 8)" * (cast_expression "(byte **)(pbVar10 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 8)" ( (binary_expression "pbVar10 + 8" identifier + number_literal) ))))) ;) (if_statement "if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(bVar14 == 0x6f)" ( (binary_expression "bVar14 == 0x6f" identifier == number_literal) )) (compound_statement "{\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }" { (expression_statement "iVar3 = (**(code **)(puVar25 + 0x9254c))();" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x9254c))()" identifier = (call_expression "(**(code **)(puVar25 + 0x9254c))()" (parenthesized_expression "(**(code **)(puVar25 + 0x9254c))" ( (pointer_expression "**(code **)(puVar25 + 0x9254c)" * (pointer_expression "*(code **)(puVar25 + 0x9254c)" * (cast_expression "(code **)(puVar25 + 0x9254c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x9254c)" ( (binary_expression "puVar25 + 0x9254c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }" { (expression_statement "uVar24 = *(uint *)(param_2 + 4);" (assignment_expression "uVar24 = *(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 "uVar18 = *(uint *)(pbVar10 + 4);" (assignment_expression "uVar18 = *(uint *)(pbVar10 + 4)" identifier = (pointer_expression "*(uint *)(pbVar10 + 4)" * (cast_expression "(uint *)(pbVar10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 4)" ( (binary_expression "pbVar10 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006305c;" goto statement_identifier ;) })) }) (else_clause "else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" else (if_statement "if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))" ( (binary_expression "(pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0)" (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0)" ( (comma_expression "iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x926e0))()" identifier = (call_expression "(**(code **)(puVar25 + 0x926e0))()" (parenthesized_expression "(**(code **)(puVar25 + 0x926e0))" ( (pointer_expression "**(code **)(puVar25 + 0x926e0)" * (pointer_expression "*(code **)(puVar25 + 0x926e0)" * (cast_expression "(code **)(puVar25 + 0x926e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x926e0)" ( (binary_expression "puVar25 + 0x926e0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" statement_identifier : (if_statement "if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((uVar18 ^ uVar24) & 0x202) == 0)" ( (binary_expression "((uVar18 ^ uVar24) & 0x202) == 0" (parenthesized_expression "((uVar18 ^ uVar24) & 0x202)" ( (binary_expression "(uVar18 ^ uVar24) & 0x202" (parenthesized_expression "(uVar18 ^ uVar24)" ( (binary_expression "uVar18 ^ uVar24" identifier ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;" if (parenthesized_expression "((uVar22 & 0x4000) != 0)" ( (binary_expression "(uVar22 & 0x4000) != 0" (parenthesized_expression "(uVar22 & 0x4000)" ( (binary_expression "uVar22 & 0x4000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }" if (parenthesized_expression "((uVar22 & 0x800) == 0)" ( (binary_expression "(uVar22 & 0x800) == 0" (parenthesized_expression "(uVar22 & 0x800)" ( (binary_expression "uVar22 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }" { (if_statement "if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" if (parenthesized_expression "((uVar22 & 8) == 0)" ( (binary_expression "(uVar22 & 8) == 0" (parenthesized_expression "(uVar22 & 8)" ( (binary_expression "uVar22 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" { (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0xc);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0xc)" * (cast_expression "(byte **)(pbVar10 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0xc)" ( (binary_expression "pbVar10 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = *(byte **)(param_2 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0xc)" identifier = (pointer_expression "*(byte **)(param_2 + 0xc)" * (cast_expression "(byte **)(param_2 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" identifier = (call_expression "FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" identifier (argument_list "(puVar7,pbVar9,pbVar11,pbVar13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00062fb4;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0x10);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0x10)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0x10)" * (cast_expression "(byte **)(pbVar10 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0x10)" ( (binary_expression "pbVar10 + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" else (compound_statement "{\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" { (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0x10);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0x10)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0x10)" * (cast_expression "(byte **)(pbVar10 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0x10)" ( (binary_expression "pbVar10 + 0x10" identifier + number_literal) ))))) ;) }))) (expression_statement "pbVar9 = *(byte **)(param_2 + 0x10);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0x10)" identifier = (pointer_expression "*(byte **)(param_2 + 0x10)" * (cast_expression "(byte **)(param_2 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" identifier = (call_expression "FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" identifier (argument_list "(puVar7,pbVar9,pbVar11,pbVar13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }" { (expression_statement "pbVar9 = *(byte **)(pbVar10 + 0x14);" (assignment_expression "pbVar9 = *(byte **)(pbVar10 + 0x14)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0x14)" * (cast_expression "(byte **)(pbVar10 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0x14)" ( (binary_expression "pbVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = pbVar13;" (assignment_expression "pbVar11 = pbVar13" identifier = identifier) ;) (expression_statement "iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);" (assignment_expression "iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13)" identifier = (call_expression "FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x14)" * (cast_expression "(undefined4 *)(param_2 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) )))) , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }" { (expression_statement "bVar14 = *param_2;" (assignment_expression "bVar14 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }" if (parenthesized_expression "(((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0))" ( (binary_expression "((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)" (parenthesized_expression "((bVar14 == 0x73) || (bVar14 == 0xa7))" ( (binary_expression "(bVar14 == 0x73) || (bVar14 == 0xa7)" (parenthesized_expression "(bVar14 == 0x73)" ( (binary_expression "bVar14 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(bVar14 == 0xa7)" ( (binary_expression "bVar14 == 0xa7" identifier == number_literal) ))) )) || (parenthesized_expression "((uVar22 & 0x2000) != 0)" ( (binary_expression "(uVar22 & 0x2000) != 0" (parenthesized_expression "(uVar22 & 0x2000)" ( (binary_expression "uVar22 & 0x2000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }" { (labeled_statement "LAB_00062f88:\n                  uVar2 = 0;" statement_identifier : (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;) })) (if_statement "if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }" if (parenthesized_expression "((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac))))" ( (binary_expression "(*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))" (parenthesized_expression "(*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20))" ( (binary_expression "*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)" (pointer_expression "*(short *)(param_2 + 0x20)" * (cast_expression "(short *)(param_2 + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) == (pointer_expression "*(short *)(pbVar10 + 0x20)" * (cast_expression "(short *)(pbVar10 + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 0x20)" ( (binary_expression "pbVar10 + 0x20" identifier + number_literal) ))))) )) && (parenthesized_expression "((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))" ( (parenthesized_expression "(param_2[2] == pbVar10[2] || (bVar14 != 0xac))" ( (binary_expression "param_2[2] == pbVar10[2] || (bVar14 != 0xac)" (binary_expression "param_2[2] == pbVar10[2]" (subscript_expression "param_2[2]" identifier [ number_literal ]) == (subscript_expression "pbVar10[2]" identifier [ number_literal ])) || (parenthesized_expression "(bVar14 != 0xac)" ( (binary_expression "bVar14 != 0xac" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if (bVar14 == 0x31) goto LAB_00062fb8;" if (parenthesized_expression "(bVar14 == 0x31)" ( (binary_expression "bVar14 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;" if (parenthesized_expression "(*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c))" ( (binary_expression "*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)" (pointer_expression "*(byte **)(param_2 + 0x1c)" * (cast_expression "(byte **)(param_2 + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) == (pointer_expression "*(byte **)(pbVar10 + 0x1c)" * (cast_expression "(byte **)(pbVar10 + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0x1c)" ( (binary_expression "pbVar10 + 0x1c" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00062f88;" goto statement_identifier ;)) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;" if (parenthesized_expression "(pbVar13 == *(byte **)(param_2 + 0x1c))" ( (binary_expression "pbVar13 == *(byte **)(param_2 + 0x1c)" identifier == (pointer_expression "*(byte **)(param_2 + 0x1c)" * (cast_expression "(byte **)(param_2 + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) })) })) })) })) }))) })))) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;) })) (if_statement "if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }" if (parenthesized_expression "(bVar14 == 0x6f)" ( (binary_expression "bVar14 == 0x6f" identifier == number_literal) )) (compound_statement "{\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }" { (expression_statement "pbVar9 = *(byte **)(param_2 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0xc)" identifier = (pointer_expression "*(byte **)(param_2 + 0xc)" * (cast_expression "(byte **)(param_2 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13)" identifier = (call_expression "FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13)" identifier (argument_list "(puVar7,pbVar9,pbVar10,pbVar13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }" if (parenthesized_expression "(1 < iVar3)" ( (binary_expression "1 < iVar3" number_literal < identifier) )) (compound_statement "{\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }" { (expression_statement "bVar6 = *pbVar10;" (assignment_expression "bVar6 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (goto_statement "goto LAB_00062fa8;" goto statement_identifier ;) })) (labeled_statement "LAB_0006323c:\n      uVar2 = 1;" statement_identifier : (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;) })) (labeled_statement "LAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }" statement_identifier : (if_statement "if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }" if (parenthesized_expression "(bVar6 == 0x6f)" ( (binary_expression "bVar6 == 0x6f" identifier == number_literal) )) (compound_statement "{\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }" { (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0xc);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0xc)" * (cast_expression "(byte **)(pbVar10 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0xc)" ( (binary_expression "pbVar10 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13)" identifier = (call_expression "FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13)" identifier (argument_list "(puVar7,param_2,pbVar11,pbVar13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (if_statement "if (iVar3 < 2) goto LAB_0006323c;" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0006323c;" goto statement_identifier ;)) }))) }))) (labeled_statement "LAB_00062fb4:\n  uVar2 = 2;" statement_identifier : (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;)) (labeled_statement "LAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }" if (parenthesized_expression "(piStack_84 == (int *)*puVar16)" ( (binary_expression "piStack_84 == (int *)*puVar16" identifier == (cast_expression "(int *)*puVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "pcVar26 = *(code **)(puVar25 + 0x92668);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0x92668)" identifier = (pointer_expression "*(code **)(puVar25 + 0x92668)" * (cast_expression "(code **)(puVar25 + 0x92668)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x92668)" ( (binary_expression "puVar25 + 0x92668" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = piStack_84;" (assignment_expression "piVar8 = piStack_84" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar26 = pcVar26 + 0x99ef4;" (assignment_expression "pcVar26 = pcVar26 + 0x99ef4" identifier = (binary_expression "pcVar26 + 0x99ef4" identifier + number_literal)) ;) (if_statement "if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (uint)(pbVar9 != (byte *)0x0);\n  }" { (return_statement "return (uint)(pbVar9 != (byte *)0x0);" return (call_expression "(uint)(pbVar9 != (byte *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar9 != (byte *)0x0)" ( (binary_expression "pbVar9 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ;) })) (if_statement "if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }" if (parenthesized_expression "((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9))" ( (binary_expression "(pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)" (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*piVar8 != *(int *)pbVar9)" ( (binary_expression "*piVar8 != *(int *)pbVar9" (pointer_expression "*piVar8" * identifier) != (pointer_expression "*(int *)pbVar9" * (cast_expression "(int *)pbVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*piVar8 < 1) {\n    return 0;\n  }" if (parenthesized_expression "(*piVar8 < 1)" ( (binary_expression "*piVar8 < 1" (pointer_expression "*piVar8" * identifier) < number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = piVar8[1];" (assignment_expression "iVar3 = piVar8[1]" identifier = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = *(undefined4 *)(pbVar9 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pbVar9 + 4)" identifier = (pointer_expression "*(undefined4 *)(pbVar9 + 4)" * (cast_expression "(undefined4 *)(pbVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + 4)" ( (binary_expression "pbVar9 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }" if (parenthesized_expression "(*(byte *)(piVar8 + 3) == pbVar9[0xc])" ( (binary_expression "*(byte *)(piVar8 + 3) == pbVar9[0xc]" (pointer_expression "*(byte *)(piVar8 + 3)" * (cast_expression "(byte *)(piVar8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 3)" ( (binary_expression "piVar8 + 3" identifier + number_literal) )))) == (subscript_expression "pbVar9[0xc]" identifier [ number_literal ])) )) (compound_statement "{\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar9 + 0x14;" (assignment_expression "pbVar15 = pbVar9 + 0x14" identifier = (binary_expression "pbVar9 + 0x14" identifier + number_literal)) ;) (expression_statement "piVar17 = piVar8 + 5;" (assignment_expression "piVar17 = piVar8 + 5" identifier = (binary_expression "piVar8 + 5" identifier + number_literal)) ;) (do_statement "do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);" do (compound_statement "{\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    }" { (expression_statement "uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);" (assignment_expression "uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26)" identifier = (call_expression "FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26)" identifier (argument_list "(0,iVar3,uVar12,pbVar11,pcVar26)" ( number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if (uVar2 != 0) {\n        return uVar2;\n      }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return uVar2;\n      }" { (return_statement "return uVar2;" return identifier ;) })) (if_statement "if (*piVar8 <= iVar19) {\n        return 0;\n      }" if (parenthesized_expression "(*piVar8 <= iVar19)" ( (binary_expression "*piVar8 <= iVar19" (pointer_expression "*piVar8" * identifier) <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar10 = (byte *)(piVar17 + 2);" (assignment_expression "pbVar10 = (byte *)(piVar17 + 2)" identifier = (cast_expression "(byte *)(piVar17 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 2)" ( (binary_expression "piVar17 + 2" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = pbVar15 + 8;" (assignment_expression "pbVar13 = pbVar15 + 8" identifier = (binary_expression "pbVar15 + 8" identifier + number_literal)) ;) (expression_statement "iVar3 = *piVar17;" (assignment_expression "iVar3 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "uVar12 = *(undefined4 *)pbVar15;" (assignment_expression "uVar12 = *(undefined4 *)pbVar15" identifier = (pointer_expression "*(undefined4 *)pbVar15" * (cast_expression "(undefined4 *)pbVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar15 = pbVar15 + 0x10;" (assignment_expression "pbVar15 = pbVar15 + 0x10" identifier = (binary_expression "pbVar15 + 0x10" identifier + number_literal)) ;) (expression_statement "piVar17 = piVar17 + 4;" (assignment_expression "piVar17 = piVar17 + 4" identifier = (binary_expression "piVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pbVar10 == *pbVar13)" ( (binary_expression "*pbVar10 == *pbVar13" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar13" * identifier)) )) ;) })) (return_statement "return 1;" return number_literal ;) (labeled_statement "code_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }" statement_identifier : (if_statement "if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }" if (parenthesized_expression "((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f)" ( (binary_expression "(uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f" (call_expression "(uint)((uVar24 & 0x1000000) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar24 & 0x1000000) != 0)" ( (binary_expression "(uVar24 & 0x1000000) != 0" (parenthesized_expression "(uVar24 & 0x1000000)" ( (binary_expression "uVar24 & 0x1000000" identifier & number_literal) )) != number_literal) ))) == (binary_expression "(uVar18 << 7) >> 0x1f" (parenthesized_expression "(uVar18 << 7)" ( (binary_expression "uVar18 << 7" identifier << number_literal) )) >> number_literal)) )) (compound_statement "{\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }" { (if_statement "if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }" if (parenthesized_expression "((uVar24 & 0x1000000) != 0)" ( (binary_expression "(uVar24 & 0x1000000) != 0" (parenthesized_expression "(uVar24 & 0x1000000)" ( (binary_expression "uVar24 & 0x1000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }" { (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0x2c);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0x2c)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0x2c)" * (cast_expression "(byte **)(pbVar10 + 0x2c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0x2c)" ( (binary_expression "pbVar10 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = *(byte **)(param_2 + 0x2c);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0x2c)" identifier = (pointer_expression "*(byte **)(param_2 + 0x2c)" * (cast_expression "(byte **)(param_2 + 0x2c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);" (assignment_expression "iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1)" identifier = (call_expression "FUN_000634f0(puVar7,pbVar9,pbVar11,1)" identifier (argument_list "(puVar7,pbVar9,pbVar11,1)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00062fb4;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (expression_statement "uVar24 = *(uint *)(param_2 + 4);" (assignment_expression "uVar24 = *(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 "uVar18 = *(uint *)(pbVar10 + 4);" (assignment_expression "uVar18 = *(uint *)(pbVar10 + 4)" identifier = (pointer_expression "*(uint *)(pbVar10 + 4)" * (cast_expression "(uint *)(pbVar10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 4)" ( (binary_expression "pbVar10 + 4" identifier + number_literal) ))))) ;) })) (goto_statement "goto LAB_0006305c;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;) })))
(translation_unit "int valueFromExpr(sqlite3 *db,Expr *pExpr,u8 enc,u8 affinity,sqlite3_value **ppVal,\n                 ValueNewStat4Ctx *pCtx)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  char cVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  char *z;\n  byte bVar11;\n  Mem *pMem;\n  int iVar7;\n  sqlite3_value *psVar8;\n  uint uVar9;\n  int iVar10;\n  byte bVar13;\n  Vdbe *pVVar12;\n  Parse *pParse;\n  byte *pbVar14;\n  int *piVar15;\n  anon_union_4_2_443a03b8_for_u aVar16;\n  Expr *pA;\n  undefined3 in_register_00000018;\n  anon_union_4_2_443a03b8_for_u aVar17;\n  anon_union_4_2_443a03b8_for_u aVar18;\n  Expr *pB;\n  undefined3 in_register_0000001c;\n  anon_union_4_2_443a03b8_for_u aVar19;\n  anon_union_4_2_443a03b8_for_u aVar20;\n  anon_union_4_2_443a03b8_for_u pExpr_00;\n  undefined4 *puVar21;\n  int *piVar22;\n  anon_union_4_2_443a03b8_for_u aVar23;\n  anon_union_4_2_443a03b8_for_u unaff_s6;\n  uint uVar24;\n  int unaff_s7;\n  uint uVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  ValueNewStat4Ctx *in_stack_ffffff6c;\n  anon_union_4_2_443a03b8_for_u aStack_88;\n  int *piStack_84;\n  int iStack_7c;\n  anon_union_4_2_443a03b8_for_u aStack_78;\n  undefined *puStack_74;\n  sqlite3_value **ppsStack_70;\n  anon_union_4_2_443a03b8_for_u aStack_6c;\n  anon_union_4_2_443a03b8_for_u aStack_68;\n  anon_union_4_2_443a03b8_for_u aStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  ValueNewStat4Ctx *in_stack_ffffffbc;\n  sqlite3_value *local_30;\n  Parse *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000f5568;\n  aVar19.iValue._0_3_ = in_register_0000001c;\n  aVar19.iValue._3_1_ = affinity;\n  aVar16.iValue._0_3_ = in_register_00000018;\n  aVar16.iValue._3_1_ = enc;\n  local_30 = (Mem *)0x0;\n  local_2c = *(Parse **)PTR___stack_chk_guard_000f5568;\n  for (pExpr_00 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      (bVar11 = *pExpr_00.zToken, bVar11 == 0xab || (bVar11 == 0xb2));\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken) {\n  }\n  if (bVar11 == 0xad) {\n    bVar11 = *(u8 *)(pExpr_00.iValue + 2);\n  }\n  if (bVar11 == 0x24) {\n    bVar11 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))\n                       (((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken,0);\n    aVar23.iValue._0_3_ = 0;\n    aVar23.iValue._3_1_ = bVar11;\n    pExpr = (Expr *)((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n    aVar20.iValue = aVar23.iValue;\n    iVar6 = valueFromExpr(db,pExpr,enc,bVar11,ppVal,in_stack_ffffffbc);\n    aVar17 = aVar16;\n    if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,bVar11,'\x01');\n      aVar17.iValue = 1;\n      pExpr = (Expr *)(int)(char)affinity;\n      applyAffinity(*ppVal,affinity,'\x01');\n    }\n  }\n  else {\n    aVar17 = aVar16;\n    aVar20 = aVar19;\n    aVar23 = aVar16;\n    if (bVar11 == 0xaa) {\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n      bVar11 = *pExpr_00.zToken;\n      if ((bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      pExpr = (Expr *)pExpr_00;\n      iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc);\n      psVar8 = local_30;\n      if (iVar6 == 0) {\n        iVar6 = 0;\n        if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        iVar6 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }\n    }\n    *ppVal = psVar8;\n  }\nLAB_00062a9c:\n  if (local_2c == *(Parse **)puVar4) {\n    return iVar6;\n  }\n  pcVar27 = sqlite3ExprCompare;\n  pParse = local_2c;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar21 = *(undefined4 **)(puVar26 + 0x92690);\n  puStack_74 = puVar4;\n  ppsStack_70 = ppVal;\n  piStack_84 = (int *)*puVar21;\n  aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n  aVar18 = aVar17;\n  iStack_7c = iVar6;\n  aStack_78 = pExpr_00;\n  aStack_6c = aVar19;\n  aStack_68 = aVar23;\n  aStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar27;\n  if (pExpr == (Expr *)0x0) {\n    iVar6 = 0;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    iVar6 = 2;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n    if ((pParse != (Parse *)0x0) && (*(char *)pExpr == -0x67)) {\n      aVar18.iValue = 1;\n      aStack_88.zToken = (char *)0x0;\n      aVar16 = aVar17;\n      valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c);\n      if (aStack_88.zToken != (char *)0x0) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);\n        pVVar12 = pParse->pVdbe;\n        if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }\n        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);\n        if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar25 = *(uint *)((int)pExpr + 4);\n    uVar5 = *(uint *)(aVar17.iValue + 4);\n    uVar24 = uVar25 | uVar5;\n    if ((uVar24 & 0x400) != 0) {\n      iVar6 = 2;\n      if ((uVar5 & 0x400 & uVar25) == 0) goto LAB_00062fb8;\n      if (*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar11 = pExpr->op;\n    bVar13 = *aVar17.zToken;\n    if (bVar11 == bVar13) {\n      if (bVar11 == 0x47) goto LAB_00062fb4;\n      if (((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)) goto LAB_0006305c;\n      if ((bVar11 == 0xa9) || (bVar11 == 0xa5)) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);\n        do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );\n      }\n      if (bVar11 == 0x77) goto LAB_00062f88;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n      if (bVar11 == 0x6f) {\n        iVar6 = (**(code **)(puVar26 + 0x9254c))();\n        if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar11 == 0x6f) {\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n      aVar18 = aVar17;\n      iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue);\n      if (1 < iVar6) {\n        bVar13 = *aVar17.zToken;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      iVar6 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar13 == 0x6f) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n      iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);\n      aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      if (iVar6 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  iVar6 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar21) {\n    return iVar6;\n  }\n  piVar15 = piStack_84;\n  (**(code **)(puVar26 + 0x92668))();\n  if (piVar15 == (int *)0x0) {\n    return (uint)((byte *)aVar16.zToken != (byte *)0x0);\n  }\n                    /* WARNING: Load size is inaccurate */\n  if (((byte *)aVar16.zToken == (byte *)0x0) || (*piVar15 != *aVar16.iValue)) {\n    return 1;\n  }\n  if (*piVar15 < 1) {\n    return 0;\n  }\n  pA = (Expr *)piVar15[1];\n  pB = *(Expr **)(aVar16.iValue + 4);\n  if (*(byte *)(piVar15 + 3) == *(byte *)(aVar16.iValue + 0xc)) {\n    iVar6 = 0;\n    pbVar14 = (byte *)(aVar16.iValue + 0x14);\n    piVar22 = piVar15 + 5;\n    do {\n      iVar10 = sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue);\n      iVar6 = iVar6 + 1;\n      if (iVar10 != 0) {\n        return iVar10;\n      }\n      if (*piVar15 <= iVar6) {\n        return 0;\n      }\n      pbVar1 = (byte *)(piVar22 + 2);\n      pbVar2 = pbVar14 + 8;\n      pA = (Expr *)*piVar22;\n      pB = *(Expr **)pbVar14;\n      pbVar14 = pbVar14 + 0x10;\n      piVar22 = piVar22 + 4;\n    } while (*pbVar1 == *pbVar2);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar25 & 0x1000000) != 0) == (uVar5 << 7) >> 0x1f) {\n    if ((uVar25 & 0x1000000) != 0) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken;\n      iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1);\n      if (iVar6 != 0) goto LAB_00062fb4;\n      uVar25 = *(uint *)((int)pExpr + 4);\n      uVar5 = *(uint *)(aVar17.iValue + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}\n\n" (function_definition "int valueFromExpr(sqlite3 *db,Expr *pExpr,u8 enc,u8 affinity,sqlite3_value **ppVal,\n                 ValueNewStat4Ctx *pCtx)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  char cVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  char *z;\n  byte bVar11;\n  Mem *pMem;\n  int iVar7;\n  sqlite3_value *psVar8;\n  uint uVar9;\n  int iVar10;\n  byte bVar13;\n  Vdbe *pVVar12;\n  Parse *pParse;\n  byte *pbVar14;\n  int *piVar15;\n  anon_union_4_2_443a03b8_for_u aVar16;\n  Expr *pA;\n  undefined3 in_register_00000018;\n  anon_union_4_2_443a03b8_for_u aVar17;\n  anon_union_4_2_443a03b8_for_u aVar18;\n  Expr *pB;\n  undefined3 in_register_0000001c;\n  anon_union_4_2_443a03b8_for_u aVar19;\n  anon_union_4_2_443a03b8_for_u aVar20;\n  anon_union_4_2_443a03b8_for_u pExpr_00;\n  undefined4 *puVar21;\n  int *piVar22;\n  anon_union_4_2_443a03b8_for_u aVar23;\n  anon_union_4_2_443a03b8_for_u unaff_s6;\n  uint uVar24;\n  int unaff_s7;\n  uint uVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  ValueNewStat4Ctx *in_stack_ffffff6c;\n  anon_union_4_2_443a03b8_for_u aStack_88;\n  int *piStack_84;\n  int iStack_7c;\n  anon_union_4_2_443a03b8_for_u aStack_78;\n  undefined *puStack_74;\n  sqlite3_value **ppsStack_70;\n  anon_union_4_2_443a03b8_for_u aStack_6c;\n  anon_union_4_2_443a03b8_for_u aStack_68;\n  anon_union_4_2_443a03b8_for_u aStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  ValueNewStat4Ctx *in_stack_ffffffbc;\n  sqlite3_value *local_30;\n  Parse *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000f5568;\n  aVar19.iValue._0_3_ = in_register_0000001c;\n  aVar19.iValue._3_1_ = affinity;\n  aVar16.iValue._0_3_ = in_register_00000018;\n  aVar16.iValue._3_1_ = enc;\n  local_30 = (Mem *)0x0;\n  local_2c = *(Parse **)PTR___stack_chk_guard_000f5568;\n  for (pExpr_00 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      (bVar11 = *pExpr_00.zToken, bVar11 == 0xab || (bVar11 == 0xb2));\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken) {\n  }\n  if (bVar11 == 0xad) {\n    bVar11 = *(u8 *)(pExpr_00.iValue + 2);\n  }\n  if (bVar11 == 0x24) {\n    bVar11 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))\n                       (((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken,0);\n    aVar23.iValue._0_3_ = 0;\n    aVar23.iValue._3_1_ = bVar11;\n    pExpr = (Expr *)((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n    aVar20.iValue = aVar23.iValue;\n    iVar6 = valueFromExpr(db,pExpr,enc,bVar11,ppVal,in_stack_ffffffbc);\n    aVar17 = aVar16;\n    if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,bVar11,'\x01');\n      aVar17.iValue = 1;\n      pExpr = (Expr *)(int)(char)affinity;\n      applyAffinity(*ppVal,affinity,'\x01');\n    }\n  }\n  else {\n    aVar17 = aVar16;\n    aVar20 = aVar19;\n    aVar23 = aVar16;\n    if (bVar11 == 0xaa) {\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n      bVar11 = *pExpr_00.zToken;\n      if ((bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      pExpr = (Expr *)pExpr_00;\n      iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc);\n      psVar8 = local_30;\n      if (iVar6 == 0) {\n        iVar6 = 0;\n        if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        iVar6 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }\n    }\n    *ppVal = psVar8;\n  }\nLAB_00062a9c:\n  if (local_2c == *(Parse **)puVar4) {\n    return iVar6;\n  }\n  pcVar27 = sqlite3ExprCompare;\n  pParse = local_2c;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar21 = *(undefined4 **)(puVar26 + 0x92690);\n  puStack_74 = puVar4;\n  ppsStack_70 = ppVal;\n  piStack_84 = (int *)*puVar21;\n  aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n  aVar18 = aVar17;\n  iStack_7c = iVar6;\n  aStack_78 = pExpr_00;\n  aStack_6c = aVar19;\n  aStack_68 = aVar23;\n  aStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar27;\n  if (pExpr == (Expr *)0x0) {\n    iVar6 = 0;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    iVar6 = 2;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n    if ((pParse != (Parse *)0x0) && (*(char *)pExpr == -0x67)) {\n      aVar18.iValue = 1;\n      aStack_88.zToken = (char *)0x0;\n      aVar16 = aVar17;\n      valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c);\n      if (aStack_88.zToken != (char *)0x0) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);\n        pVVar12 = pParse->pVdbe;\n        if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }\n        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);\n        if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar25 = *(uint *)((int)pExpr + 4);\n    uVar5 = *(uint *)(aVar17.iValue + 4);\n    uVar24 = uVar25 | uVar5;\n    if ((uVar24 & 0x400) != 0) {\n      iVar6 = 2;\n      if ((uVar5 & 0x400 & uVar25) == 0) goto LAB_00062fb8;\n      if (*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar11 = pExpr->op;\n    bVar13 = *aVar17.zToken;\n    if (bVar11 == bVar13) {\n      if (bVar11 == 0x47) goto LAB_00062fb4;\n      if (((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)) goto LAB_0006305c;\n      if ((bVar11 == 0xa9) || (bVar11 == 0xa5)) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);\n        do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );\n      }\n      if (bVar11 == 0x77) goto LAB_00062f88;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n      if (bVar11 == 0x6f) {\n        iVar6 = (**(code **)(puVar26 + 0x9254c))();\n        if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar11 == 0x6f) {\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n      aVar18 = aVar17;\n      iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue);\n      if (1 < iVar6) {\n        bVar13 = *aVar17.zToken;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      iVar6 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar13 == 0x6f) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n      iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);\n      aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      if (iVar6 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  iVar6 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar21) {\n    return iVar6;\n  }\n  piVar15 = piStack_84;\n  (**(code **)(puVar26 + 0x92668))();\n  if (piVar15 == (int *)0x0) {\n    return (uint)((byte *)aVar16.zToken != (byte *)0x0);\n  }\n                    /* WARNING: Load size is inaccurate */\n  if (((byte *)aVar16.zToken == (byte *)0x0) || (*piVar15 != *aVar16.iValue)) {\n    return 1;\n  }\n  if (*piVar15 < 1) {\n    return 0;\n  }\n  pA = (Expr *)piVar15[1];\n  pB = *(Expr **)(aVar16.iValue + 4);\n  if (*(byte *)(piVar15 + 3) == *(byte *)(aVar16.iValue + 0xc)) {\n    iVar6 = 0;\n    pbVar14 = (byte *)(aVar16.iValue + 0x14);\n    piVar22 = piVar15 + 5;\n    do {\n      iVar10 = sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue);\n      iVar6 = iVar6 + 1;\n      if (iVar10 != 0) {\n        return iVar10;\n      }\n      if (*piVar15 <= iVar6) {\n        return 0;\n      }\n      pbVar1 = (byte *)(piVar22 + 2);\n      pbVar2 = pbVar14 + 8;\n      pA = (Expr *)*piVar22;\n      pB = *(Expr **)pbVar14;\n      pbVar14 = pbVar14 + 0x10;\n      piVar22 = piVar22 + 4;\n    } while (*pbVar1 == *pbVar2);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar25 & 0x1000000) != 0) == (uVar5 << 7) >> 0x1f) {\n    if ((uVar25 & 0x1000000) != 0) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken;\n      iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1);\n      if (iVar6 != 0) goto LAB_00062fb4;\n      uVar25 = *(uint *)((int)pExpr + 4);\n      uVar5 = *(uint *)(aVar17.iValue + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}" primitive_type (function_declarator "valueFromExpr(sqlite3 *db,Expr *pExpr,u8 enc,u8 affinity,sqlite3_value **ppVal,\n                 ValueNewStat4Ctx *pCtx)" identifier (parameter_list "(sqlite3 *db,Expr *pExpr,u8 enc,u8 affinity,sqlite3_value **ppVal,\n                 ValueNewStat4Ctx *pCtx)" ( (parameter_declaration "sqlite3 *db" type_identifier (pointer_declarator "*db" * identifier)) , (parameter_declaration "Expr *pExpr" type_identifier (pointer_declarator "*pExpr" * identifier)) , (parameter_declaration "u8 enc" type_identifier identifier) , (parameter_declaration "u8 affinity" type_identifier identifier) , (parameter_declaration "sqlite3_value **ppVal" type_identifier (pointer_declarator "**ppVal" * (pointer_declarator "*ppVal" * identifier))) , (parameter_declaration "ValueNewStat4Ctx *pCtx" type_identifier (pointer_declarator "*pCtx" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  byte *pbVar2;\n  char cVar3;\n  undefined *puVar4;\n  uint uVar5;\n  int iVar6;\n  char *z;\n  byte bVar11;\n  Mem *pMem;\n  int iVar7;\n  sqlite3_value *psVar8;\n  uint uVar9;\n  int iVar10;\n  byte bVar13;\n  Vdbe *pVVar12;\n  Parse *pParse;\n  byte *pbVar14;\n  int *piVar15;\n  anon_union_4_2_443a03b8_for_u aVar16;\n  Expr *pA;\n  undefined3 in_register_00000018;\n  anon_union_4_2_443a03b8_for_u aVar17;\n  anon_union_4_2_443a03b8_for_u aVar18;\n  Expr *pB;\n  undefined3 in_register_0000001c;\n  anon_union_4_2_443a03b8_for_u aVar19;\n  anon_union_4_2_443a03b8_for_u aVar20;\n  anon_union_4_2_443a03b8_for_u pExpr_00;\n  undefined4 *puVar21;\n  int *piVar22;\n  anon_union_4_2_443a03b8_for_u aVar23;\n  anon_union_4_2_443a03b8_for_u unaff_s6;\n  uint uVar24;\n  int unaff_s7;\n  uint uVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  ValueNewStat4Ctx *in_stack_ffffff6c;\n  anon_union_4_2_443a03b8_for_u aStack_88;\n  int *piStack_84;\n  int iStack_7c;\n  anon_union_4_2_443a03b8_for_u aStack_78;\n  undefined *puStack_74;\n  sqlite3_value **ppsStack_70;\n  anon_union_4_2_443a03b8_for_u aStack_6c;\n  anon_union_4_2_443a03b8_for_u aStack_68;\n  anon_union_4_2_443a03b8_for_u aStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  ValueNewStat4Ctx *in_stack_ffffffbc;\n  sqlite3_value *local_30;\n  Parse *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000f5568;\n  aVar19.iValue._0_3_ = in_register_0000001c;\n  aVar19.iValue._3_1_ = affinity;\n  aVar16.iValue._0_3_ = in_register_00000018;\n  aVar16.iValue._3_1_ = enc;\n  local_30 = (Mem *)0x0;\n  local_2c = *(Parse **)PTR___stack_chk_guard_000f5568;\n  for (pExpr_00 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      (bVar11 = *pExpr_00.zToken, bVar11 == 0xab || (bVar11 == 0xb2));\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken) {\n  }\n  if (bVar11 == 0xad) {\n    bVar11 = *(u8 *)(pExpr_00.iValue + 2);\n  }\n  if (bVar11 == 0x24) {\n    bVar11 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))\n                       (((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken,0);\n    aVar23.iValue._0_3_ = 0;\n    aVar23.iValue._3_1_ = bVar11;\n    pExpr = (Expr *)((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n    aVar20.iValue = aVar23.iValue;\n    iVar6 = valueFromExpr(db,pExpr,enc,bVar11,ppVal,in_stack_ffffffbc);\n    aVar17 = aVar16;\n    if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,bVar11,'\x01');\n      aVar17.iValue = 1;\n      pExpr = (Expr *)(int)(char)affinity;\n      applyAffinity(*ppVal,affinity,'\x01');\n    }\n  }\n  else {\n    aVar17 = aVar16;\n    aVar20 = aVar19;\n    aVar23 = aVar16;\n    if (bVar11 == 0xaa) {\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n      bVar11 = *pExpr_00.zToken;\n      if ((bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      pExpr = (Expr *)pExpr_00;\n      iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc);\n      psVar8 = local_30;\n      if (iVar6 == 0) {\n        iVar6 = 0;\n        if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        iVar6 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }\n    }\n    *ppVal = psVar8;\n  }\nLAB_00062a9c:\n  if (local_2c == *(Parse **)puVar4) {\n    return iVar6;\n  }\n  pcVar27 = sqlite3ExprCompare;\n  pParse = local_2c;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar21 = *(undefined4 **)(puVar26 + 0x92690);\n  puStack_74 = puVar4;\n  ppsStack_70 = ppVal;\n  piStack_84 = (int *)*puVar21;\n  aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n  aVar18 = aVar17;\n  iStack_7c = iVar6;\n  aStack_78 = pExpr_00;\n  aStack_6c = aVar19;\n  aStack_68 = aVar23;\n  aStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar27;\n  if (pExpr == (Expr *)0x0) {\n    iVar6 = 0;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    iVar6 = 2;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n    if ((pParse != (Parse *)0x0) && (*(char *)pExpr == -0x67)) {\n      aVar18.iValue = 1;\n      aStack_88.zToken = (char *)0x0;\n      aVar16 = aVar17;\n      valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c);\n      if (aStack_88.zToken != (char *)0x0) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);\n        pVVar12 = pParse->pVdbe;\n        if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }\n        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);\n        if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar25 = *(uint *)((int)pExpr + 4);\n    uVar5 = *(uint *)(aVar17.iValue + 4);\n    uVar24 = uVar25 | uVar5;\n    if ((uVar24 & 0x400) != 0) {\n      iVar6 = 2;\n      if ((uVar5 & 0x400 & uVar25) == 0) goto LAB_00062fb8;\n      if (*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar11 = pExpr->op;\n    bVar13 = *aVar17.zToken;\n    if (bVar11 == bVar13) {\n      if (bVar11 == 0x47) goto LAB_00062fb4;\n      if (((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)) goto LAB_0006305c;\n      if ((bVar11 == 0xa9) || (bVar11 == 0xa5)) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);\n        do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );\n      }\n      if (bVar11 == 0x77) goto LAB_00062f88;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n      if (bVar11 == 0x6f) {\n        iVar6 = (**(code **)(puVar26 + 0x9254c))();\n        if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar11 == 0x6f) {\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n      aVar18 = aVar17;\n      iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue);\n      if (1 < iVar6) {\n        bVar13 = *aVar17.zToken;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      iVar6 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar13 == 0x6f) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n      iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);\n      aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      if (iVar6 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  iVar6 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar21) {\n    return iVar6;\n  }\n  piVar15 = piStack_84;\n  (**(code **)(puVar26 + 0x92668))();\n  if (piVar15 == (int *)0x0) {\n    return (uint)((byte *)aVar16.zToken != (byte *)0x0);\n  }\n                    /* WARNING: Load size is inaccurate */\n  if (((byte *)aVar16.zToken == (byte *)0x0) || (*piVar15 != *aVar16.iValue)) {\n    return 1;\n  }\n  if (*piVar15 < 1) {\n    return 0;\n  }\n  pA = (Expr *)piVar15[1];\n  pB = *(Expr **)(aVar16.iValue + 4);\n  if (*(byte *)(piVar15 + 3) == *(byte *)(aVar16.iValue + 0xc)) {\n    iVar6 = 0;\n    pbVar14 = (byte *)(aVar16.iValue + 0x14);\n    piVar22 = piVar15 + 5;\n    do {\n      iVar10 = sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue);\n      iVar6 = iVar6 + 1;\n      if (iVar10 != 0) {\n        return iVar10;\n      }\n      if (*piVar15 <= iVar6) {\n        return 0;\n      }\n      pbVar1 = (byte *)(piVar22 + 2);\n      pbVar2 = pbVar14 + 8;\n      pA = (Expr *)*piVar22;\n      pB = *(Expr **)pbVar14;\n      pbVar14 = pbVar14 + 0x10;\n      piVar22 = piVar22 + 4;\n    } while (*pbVar1 == *pbVar2);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar25 & 0x1000000) != 0) == (uVar5 << 7) >> 0x1f) {\n    if ((uVar25 & 0x1000000) != 0) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken;\n      iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1);\n      if (iVar6 != 0) goto LAB_00062fb4;\n      uVar25 = *(uint *)((int)pExpr + 4);\n      uVar5 = *(uint *)(aVar17.iValue + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *z;" primitive_type (pointer_declarator "*z" * identifier) ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "Mem *pMem;" type_identifier (pointer_declarator "*pMem" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "sqlite3_value *psVar8;" type_identifier (pointer_declarator "*psVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "Vdbe *pVVar12;" type_identifier (pointer_declarator "*pVVar12" * identifier) ;) (declaration "Parse *pParse;" type_identifier (pointer_declarator "*pParse" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "anon_union_4_2_443a03b8_for_u aVar16;" type_identifier identifier ;) (declaration "Expr *pA;" type_identifier (pointer_declarator "*pA" * identifier) ;) (declaration "undefined3 in_register_00000018;" type_identifier identifier ;) (declaration "anon_union_4_2_443a03b8_for_u aVar17;" type_identifier identifier ;) (declaration "anon_union_4_2_443a03b8_for_u aVar18;" type_identifier identifier ;) (declaration "Expr *pB;" type_identifier (pointer_declarator "*pB" * identifier) ;) (declaration "undefined3 in_register_0000001c;" type_identifier identifier ;) (declaration "anon_union_4_2_443a03b8_for_u aVar19;" type_identifier identifier ;) (declaration "anon_union_4_2_443a03b8_for_u aVar20;" type_identifier identifier ;) (declaration "anon_union_4_2_443a03b8_for_u pExpr_00;" type_identifier identifier ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "anon_union_4_2_443a03b8_for_u aVar23;" type_identifier identifier ;) (declaration "anon_union_4_2_443a03b8_for_u unaff_s6;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "int unaff_s7;" primitive_type identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "ValueNewStat4Ctx *in_stack_ffffff6c;" type_identifier (pointer_declarator "*in_stack_ffffff6c" * identifier) ;) (declaration "anon_union_4_2_443a03b8_for_u aStack_88;" type_identifier identifier ;) (declaration "int *piStack_84;" primitive_type (pointer_declarator "*piStack_84" * identifier) ;) (declaration "int iStack_7c;" primitive_type identifier ;) (declaration "anon_union_4_2_443a03b8_for_u aStack_78;" type_identifier identifier ;) (declaration "undefined *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "sqlite3_value **ppsStack_70;" type_identifier (pointer_declarator "**ppsStack_70" * (pointer_declarator "*ppsStack_70" * identifier)) ;) (declaration "anon_union_4_2_443a03b8_for_u aStack_6c;" type_identifier identifier ;) (declaration "anon_union_4_2_443a03b8_for_u aStack_68;" type_identifier identifier ;) (declaration "anon_union_4_2_443a03b8_for_u aStack_64;" type_identifier identifier ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "ValueNewStat4Ctx *in_stack_ffffffbc;" type_identifier (pointer_declarator "*in_stack_ffffffbc" * identifier) ;) (declaration "sqlite3_value *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "Parse *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar4 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "aVar19.iValue._0_3_ = in_register_0000001c;" (assignment_expression "aVar19.iValue._0_3_ = in_register_0000001c" (field_expression "aVar19.iValue._0_3_" (field_expression "aVar19.iValue" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "aVar19.iValue._3_1_ = affinity;" (assignment_expression "aVar19.iValue._3_1_ = affinity" (field_expression "aVar19.iValue._3_1_" (field_expression "aVar19.iValue" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "aVar16.iValue._0_3_ = in_register_00000018;" (assignment_expression "aVar16.iValue._0_3_ = in_register_00000018" (field_expression "aVar16.iValue._0_3_" (field_expression "aVar16.iValue" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "aVar16.iValue._3_1_ = enc;" (assignment_expression "aVar16.iValue._3_1_ = enc" (field_expression "aVar16.iValue._3_1_" (field_expression "aVar16.iValue" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "local_30 = (Mem *)0x0;" (assignment_expression "local_30 = (Mem *)0x0" identifier = (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = *(Parse **)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_2c = *(Parse **)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(Parse **)PTR___stack_chk_guard_000f5568" * (cast_expression "(Parse **)PTR___stack_chk_guard_000f5568" ( (type_descriptor "Parse **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (for_statement "for (pExpr_00 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      (bVar11 = *pExpr_00.zToken, bVar11 == 0xab || (bVar11 == 0xb2));\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken) {\n  }" for ( (assignment_expression "pExpr_00 = (anon_union_4_2_443a03b8_for_u)pExpr" identifier = (cast_expression "(anon_union_4_2_443a03b8_for_u)pExpr" ( (type_descriptor "anon_union_4_2_443a03b8_for_u" type_identifier) ) identifier)) ; (parenthesized_expression "(bVar11 = *pExpr_00.zToken, bVar11 == 0xab || (bVar11 == 0xb2))" ( (comma_expression "bVar11 = *pExpr_00.zToken, bVar11 == 0xab || (bVar11 == 0xb2)" (assignment_expression "bVar11 = *pExpr_00.zToken" identifier = (pointer_expression "*pExpr_00.zToken" * (field_expression "pExpr_00.zToken" identifier . field_identifier))) , (binary_expression "bVar11 == 0xab || (bVar11 == 0xb2)" (binary_expression "bVar11 == 0xab" identifier == number_literal) || (parenthesized_expression "(bVar11 == 0xb2)" ( (binary_expression "bVar11 == 0xb2" identifier == number_literal) )))) )) ; (assignment_expression "pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 0xc)" ( (binary_expression "pExpr_00.iValue + 0xc" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ) (compound_statement "{\n  }" { })) (if_statement "if (bVar11 == 0xad) {\n    bVar11 = *(u8 *)(pExpr_00.iValue + 2);\n  }" if (parenthesized_expression "(bVar11 == 0xad)" ( (binary_expression "bVar11 == 0xad" identifier == number_literal) )) (compound_statement "{\n    bVar11 = *(u8 *)(pExpr_00.iValue + 2);\n  }" { (expression_statement "bVar11 = *(u8 *)(pExpr_00.iValue + 2);" (assignment_expression "bVar11 = *(u8 *)(pExpr_00.iValue + 2)" identifier = (pointer_expression "*(u8 *)(pExpr_00.iValue + 2)" * (cast_expression "(u8 *)(pExpr_00.iValue + 2)" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 2)" ( (binary_expression "pExpr_00.iValue + 2" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))))) ;) })) (if_statement "if (bVar11 == 0x24) {\n    bVar11 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))\n                       (((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken,0);\n    aVar23.iValue._0_3_ = 0;\n    aVar23.iValue._3_1_ = bVar11;\n    pExpr = (Expr *)((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n    aVar20.iValue = aVar23.iValue;\n    iVar6 = valueFromExpr(db,pExpr,enc,bVar11,ppVal,in_stack_ffffffbc);\n    aVar17 = aVar16;\n    if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,bVar11,'\x01');\n      aVar17.iValue = 1;\n      pExpr = (Expr *)(int)(char)affinity;\n      applyAffinity(*ppVal,affinity,'\x01');\n    }\n  }\n  else {\n    aVar17 = aVar16;\n    aVar20 = aVar19;\n    aVar23 = aVar16;\n    if (bVar11 == 0xaa) {\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n      bVar11 = *pExpr_00.zToken;\n      if ((bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      pExpr = (Expr *)pExpr_00;\n      iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc);\n      psVar8 = local_30;\n      if (iVar6 == 0) {\n        iVar6 = 0;\n        if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        iVar6 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }\n    }\n    *ppVal = psVar8;\n  }" if (parenthesized_expression "(bVar11 == 0x24)" ( (binary_expression "bVar11 == 0x24" identifier == number_literal) )) (compound_statement "{\n    bVar11 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))\n                       (((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken,0);\n    aVar23.iValue._0_3_ = 0;\n    aVar23.iValue._3_1_ = bVar11;\n    pExpr = (Expr *)((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n    aVar20.iValue = aVar23.iValue;\n    iVar6 = valueFromExpr(db,pExpr,enc,bVar11,ppVal,in_stack_ffffffbc);\n    aVar17 = aVar16;\n    if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,bVar11,'\x01');\n      aVar17.iValue = 1;\n      pExpr = (Expr *)(int)(char)affinity;\n      applyAffinity(*ppVal,affinity,'\x01');\n    }\n  }" { (expression_statement "bVar11 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))\n                       (((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken,0);" (assignment_expression "bVar11 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))\n                       (((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken,0)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x4c38))\n                       (((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x4c38))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x4c38)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x4c38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + 0x4c38)" ( (binary_expression "PTR_LAB_000f52c8 + 0x4c38" identifier + number_literal) )))) )) (argument_list "(((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken,0)" ( (field_expression "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->zToken" (parenthesized_expression "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 8)" ( (binary_expression "pExpr_00.iValue + 8" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) , number_literal )))) ;) (expression_statement "aVar23.iValue._0_3_ = 0;" (assignment_expression "aVar23.iValue._0_3_ = 0" (field_expression "aVar23.iValue._0_3_" (field_expression "aVar23.iValue" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar23.iValue._3_1_ = bVar11;" (assignment_expression "aVar23.iValue._3_1_ = bVar11" (field_expression "aVar23.iValue._3_1_" (field_expression "aVar23.iValue" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pExpr = (Expr *)((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;" (assignment_expression "pExpr = (Expr *)((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken" identifier = (cast_expression "(Expr *)((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken" (parenthesized_expression "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 0xc)" ( (binary_expression "pExpr_00.iValue + 0xc" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))) )) -> field_identifier))) ;) (expression_statement "aVar20.iValue = aVar23.iValue;" (assignment_expression "aVar20.iValue = aVar23.iValue" (field_expression "aVar20.iValue" identifier . field_identifier) = (field_expression "aVar23.iValue" identifier . field_identifier)) ;) (expression_statement "iVar6 = valueFromExpr(db,pExpr,enc,bVar11,ppVal,in_stack_ffffffbc);" (assignment_expression "iVar6 = valueFromExpr(db,pExpr,enc,bVar11,ppVal,in_stack_ffffffbc)" identifier = (call_expression "valueFromExpr(db,pExpr,enc,bVar11,ppVal,in_stack_ffffffbc)" identifier (argument_list "(db,pExpr,enc,bVar11,ppVal,in_stack_ffffffbc)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "aVar17 = aVar16;" (assignment_expression "aVar17 = aVar16" identifier = identifier) ;) (if_statement "if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,bVar11,'\x01');\n      aVar17.iValue = 1;\n      pExpr = (Expr *)(int)(char)affinity;\n      applyAffinity(*ppVal,affinity,'\x01');\n    }" if (parenthesized_expression "(*ppVal != (Mem *)0x0)" ( (binary_expression "*ppVal != (Mem *)0x0" (pointer_expression "*ppVal" * identifier) != (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sqlite3VdbeMemCast(*ppVal,bVar11,'\x01');\n      aVar17.iValue = 1;\n      pExpr = (Expr *)(int)(char)affinity;\n      applyAffinity(*ppVal,affinity,'\x01');\n    }" { (expression_statement "sqlite3VdbeMemCast(*ppVal,bVar11,'\x01');" (call_expression "sqlite3VdbeMemCast(*ppVal,bVar11,'\x01')" identifier (argument_list "(*ppVal,bVar11,'\x01')" ( (pointer_expression "*ppVal" * identifier) , identifier , (char_literal "'\x01'" ' escape_sequence ') ))) ;) (expression_statement "aVar17.iValue = 1;" (assignment_expression "aVar17.iValue = 1" (field_expression "aVar17.iValue" identifier . field_identifier) = number_literal) ;) (expression_statement "pExpr = (Expr *)(int)(char)affinity;" (assignment_expression "pExpr = (Expr *)(int)(char)affinity" identifier = (cast_expression "(Expr *)(int)(char)affinity" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)affinity" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)affinity" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (expression_statement "applyAffinity(*ppVal,affinity,'\x01');" (call_expression "applyAffinity(*ppVal,affinity,'\x01')" identifier (argument_list "(*ppVal,affinity,'\x01')" ( (pointer_expression "*ppVal" * identifier) , identifier , (char_literal "'\x01'" ' escape_sequence ') ))) ;) })) }) (else_clause "else {\n    aVar17 = aVar16;\n    aVar20 = aVar19;\n    aVar23 = aVar16;\n    if (bVar11 == 0xaa) {\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n      bVar11 = *pExpr_00.zToken;\n      if ((bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      pExpr = (Expr *)pExpr_00;\n      iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc);\n      psVar8 = local_30;\n      if (iVar6 == 0) {\n        iVar6 = 0;\n        if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        iVar6 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }\n    }\n    *ppVal = psVar8;\n  }" else (compound_statement "{\n    aVar17 = aVar16;\n    aVar20 = aVar19;\n    aVar23 = aVar16;\n    if (bVar11 == 0xaa) {\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n      bVar11 = *pExpr_00.zToken;\n      if ((bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      pExpr = (Expr *)pExpr_00;\n      iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc);\n      psVar8 = local_30;\n      if (iVar6 == 0) {\n        iVar6 = 0;\n        if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        iVar6 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }\n    }\n    *ppVal = psVar8;\n  }" { (expression_statement "aVar17 = aVar16;" (assignment_expression "aVar17 = aVar16" identifier = identifier) ;) (expression_statement "aVar20 = aVar19;" (assignment_expression "aVar20 = aVar19" identifier = identifier) ;) (expression_statement "aVar23 = aVar16;" (assignment_expression "aVar23 = aVar16" identifier = identifier) ;) (if_statement "if (bVar11 == 0xaa) {\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n      bVar11 = *pExpr_00.zToken;\n      if ((bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      pExpr = (Expr *)pExpr_00;\n      iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc);\n      psVar8 = local_30;\n      if (iVar6 == 0) {\n        iVar6 = 0;\n        if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        iVar6 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }\n    }" if (parenthesized_expression "(bVar11 == 0xaa)" ( (binary_expression "bVar11 == 0xaa" identifier == number_literal) )) (compound_statement "{\n      pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n      bVar11 = *pExpr_00.zToken;\n      if ((bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      pExpr = (Expr *)pExpr_00;\n      iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc);\n      psVar8 = local_30;\n      if (iVar6 == 0) {\n        iVar6 = 0;\n        if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        iVar6 = 0;\n      }\n    }" { (expression_statement "pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;" (assignment_expression "pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 0xc)" ( (binary_expression "pExpr_00.iValue + 0xc" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "bVar11 = *pExpr_00.zToken;" (assignment_expression "bVar11 = *pExpr_00.zToken" identifier = (pointer_expression "*pExpr_00.zToken" * (field_expression "pExpr_00.zToken" identifier . field_identifier))) ;) (if_statement "if ((bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }" if (parenthesized_expression "((bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96))" ( (binary_expression "(bVar11 == 0x98) ||\n         (unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)" (parenthesized_expression "(bVar11 == 0x98)" ( (binary_expression "bVar11 == 0x98" identifier == number_literal) )) || (parenthesized_expression "(unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96)" ( (comma_expression "unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc, bVar11 == 0x96" (assignment_expression "unaff_s6 = (anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc" identifier = (cast_expression "(anon_union_4_2_443a03b8_for_u)PTR_LAB_000f52cc" ( (type_descriptor "anon_union_4_2_443a03b8_for_u" type_identifier) ) identifier)) , (binary_expression "bVar11 == 0x96" identifier == number_literal)) ))) )) (compound_statement "{\n        unaff_s7 = -1;\n        unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }" { (expression_statement "unaff_s7 = -1;" (assignment_expression "unaff_s7 = -1" identifier = number_literal) ;) (expression_statement "unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc;" (assignment_expression "unaff_s6.zToken = PTR_LAB_000f52cc + 0x74bc" (field_expression "unaff_s6.zToken" identifier . field_identifier) = (binary_expression "PTR_LAB_000f52cc + 0x74bc" identifier + number_literal)) ;) (goto_statement "goto LAB_000629b8;" goto statement_identifier ;) })) (labeled_statement "LAB_00062b54:\n      pExpr = (Expr *)pExpr_00;" statement_identifier : (expression_statement "pExpr = (Expr *)pExpr_00;" (assignment_expression "pExpr = (Expr *)pExpr_00" identifier = (cast_expression "(Expr *)pExpr_00" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc);" (assignment_expression "iVar6 = valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc)" identifier = (call_expression "valueFromExpr(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc)" identifier (argument_list "(db,pExpr_00.iValue,enc,affinity,&local_30,in_stack_ffffffbc)" ( identifier , (field_expression "pExpr_00.iValue" identifier . field_identifier) , identifier , identifier , (pointer_expression "&local_30" & identifier) , identifier )))) ;) (expression_statement "psVar8 = local_30;" (assignment_expression "psVar8 = local_30" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n        iVar6 = 0;\n        if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        iVar6 = 0;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = 0;\n        if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (local_30 != (Mem *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }" if (parenthesized_expression "(local_30 != (Mem *)0x0)" ( (binary_expression "local_30 != (Mem *)0x0" identifier != (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }\n          pExpr = (Expr *)(int)(char)affinity;\n          aVar17 = aVar16;\n          applyAffinity(local_30,affinity,enc);\n          psVar8 = local_30;\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x4950))();" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x4950))()" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x4950))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x4950)" * (cast_expression "(code *)(PTR_LAB_000f52ec + -0x4950)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x4950)" ( (binary_expression "PTR_LAB_000f52ec + -0x4950" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (if_statement "if ((local_30->flags & 8) == 0) {\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }\n          else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }" if (parenthesized_expression "((local_30->flags & 8) == 0)" ( (binary_expression "(local_30->flags & 8) == 0" (parenthesized_expression "(local_30->flags & 8)" ( (binary_expression "local_30->flags & 8" (field_expression "local_30->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar7 = (local_30->u).nZero;\n            iVar10 = *(int *)((int)&local_30->u + 4);\n            if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }\n          }" { (expression_statement "iVar7 = (local_30->u).nZero;" (assignment_expression "iVar7 = (local_30->u).nZero" identifier = (field_expression "(local_30->u).nZero" (parenthesized_expression "(local_30->u)" ( (field_expression "local_30->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar10 = *(int *)((int)&local_30->u + 4);" (assignment_expression "iVar10 = *(int *)((int)&local_30->u + 4)" identifier = (pointer_expression "*(int *)((int)&local_30->u + 4)" * (cast_expression "(int *)((int)&local_30->u + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_30->u + 4)" ( (binary_expression "(int)&local_30->u + 4" (cast_expression "(int)&local_30->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30->u" & (field_expression "local_30->u" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if ((iVar7 == -0x80000000) && (iVar10 == 0)) {\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }\n            else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }" if (parenthesized_expression "((iVar7 == -0x80000000) && (iVar10 == 0))" ( (binary_expression "(iVar7 == -0x80000000) && (iVar10 == 0)" (parenthesized_expression "(iVar7 == -0x80000000)" ( (binary_expression "iVar7 == -0x80000000" identifier == number_literal) )) && (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) ))) )) (compound_statement "{\n              local_30->flags = local_30->flags & 0x3e40 | 8;\n              local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);\n            }" { (expression_statement "local_30->flags = local_30->flags & 0x3e40 | 8;" (assignment_expression "local_30->flags = local_30->flags & 0x3e40 | 8" (field_expression "local_30->flags" identifier -> field_identifier) = (binary_expression "local_30->flags & 0x3e40 | 8" (binary_expression "local_30->flags & 0x3e40" (field_expression "local_30->flags" identifier -> field_identifier) & number_literal) | number_literal)) ;) (expression_statement "local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0);" (assignment_expression "local_30->u = *(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0)" (field_expression "local_30->u" identifier -> field_identifier) = (pointer_expression "*(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0)" * (cast_expression "(MemValue *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0)" ( (type_descriptor "MemValue *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_yy_shift_ofst_376__000f52d4 + 0x26d0)" ( (binary_expression "PTR_yy_shift_ofst_376__000f52d4 + 0x26d0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }" else (compound_statement "{\n              iVar10 = -iVar10;\n              *(int *)((int)&local_30->u + 4) = iVar10;\n              (local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);\n            }" { (expression_statement "iVar10 = -iVar10;" (assignment_expression "iVar10 = -iVar10" identifier = (unary_expression "-iVar10" - identifier)) ;) (expression_statement "*(int *)((int)&local_30->u + 4) = iVar10;" (assignment_expression "*(int *)((int)&local_30->u + 4) = iVar10" (pointer_expression "*(int *)((int)&local_30->u + 4)" * (cast_expression "(int *)((int)&local_30->u + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_30->u + 4)" ( (binary_expression "(int)&local_30->u + 4" (cast_expression "(int)&local_30->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30->u" & (field_expression "local_30->u" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7);" (assignment_expression "(local_30->u).zPType = (char *)(-(uint)(iVar10 != 0) - iVar7)" (field_expression "(local_30->u).zPType" (parenthesized_expression "(local_30->u)" ( (field_expression "local_30->u" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(-(uint)(iVar10 != 0) - iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(uint)(iVar10 != 0) - iVar7)" ( (binary_expression "-(uint)(iVar10 != 0) - iVar7" (unary_expression "-(uint)(iVar10 != 0)" - (call_expression "(uint)(iVar10 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )))) - identifier) )))) ;) }))) }) (else_clause "else {\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }" else (compound_statement "{\n            (local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;\n          }" { (expression_statement "(local_30->u).nZero = (local_30->u).nZero ^ 0x80000000;" (assignment_expression "(local_30->u).nZero = (local_30->u).nZero ^ 0x80000000" (field_expression "(local_30->u).nZero" (parenthesized_expression "(local_30->u)" ( (field_expression "local_30->u" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(local_30->u).nZero ^ 0x80000000" (field_expression "(local_30->u).nZero" (parenthesized_expression "(local_30->u)" ( (field_expression "local_30->u" identifier -> field_identifier) )) . field_identifier) ^ number_literal)) ;) }))) (expression_statement "pExpr = (Expr *)(int)(char)affinity;" (assignment_expression "pExpr = (Expr *)(int)(char)affinity" identifier = (cast_expression "(Expr *)(int)(char)affinity" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)affinity" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)affinity" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (expression_statement "aVar17 = aVar16;" (assignment_expression "aVar17 = aVar16" identifier = identifier) ;) (expression_statement "applyAffinity(local_30,affinity,enc);" (call_expression "applyAffinity(local_30,affinity,enc)" identifier (argument_list "(local_30,affinity,enc)" ( identifier , identifier , identifier ))) ;) (expression_statement "psVar8 = local_30;" (assignment_expression "psVar8 = local_30" identifier = identifier) ;) })) }) (else_clause "else {\nLAB_00062a94:\n        iVar6 = 0;\n      }" else (compound_statement "{\nLAB_00062a94:\n        iVar6 = 0;\n      }" { (labeled_statement "LAB_00062a94:\n        iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) }))) }) (else_clause "else {\n      unaff_s7 = 1;\n      unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }\n    }" else (compound_statement "{\n      unaff_s7 = 1;\n      unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }\n    }" { (expression_statement "unaff_s7 = 1;" (assignment_expression "unaff_s7 = 1" identifier = number_literal) ;) (expression_statement "unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c;" (assignment_expression "unaff_s6.zToken = PTR_yy_shift_ofst_376__000f52d4 + -0x543c" (field_expression "unaff_s6.zToken" identifier . field_identifier) = (binary_expression "PTR_yy_shift_ofst_376__000f52d4 + -0x543c" identifier + number_literal)) ;) (labeled_statement "LAB_000629b8:\n      if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }" statement_identifier : (if_statement "if (((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)) {\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }\n      else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }" if (parenthesized_expression "(((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98))" ( (binary_expression "((bVar11 == 0x73) || (bVar11 == 0x96)) || (bVar11 == 0x98)" (parenthesized_expression "((bVar11 == 0x73) || (bVar11 == 0x96))" ( (binary_expression "(bVar11 == 0x73) || (bVar11 == 0x96)" (parenthesized_expression "(bVar11 == 0x73)" ( (binary_expression "bVar11 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(bVar11 == 0x96)" ( (binary_expression "bVar11 == 0x96" identifier == number_literal) ))) )) || (parenthesized_expression "(bVar11 == 0x98)" ( (binary_expression "bVar11 == 0x98" identifier == number_literal) ))) )) (compound_statement "{\n        aVar20.iValue = 0x28;\n        aVar17.zToken = (char *)0x0;\n        local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n        if (local_30 == (Mem *)0x0) goto LAB_00062b00;\n        uVar5 = *(u32 *)(pExpr_00.iValue + 4);\n        local_30->db = db;\n        local_30->flags = 1;\n        if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }\n        if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }\n        if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }\n        iVar6 = 0;\n        psVar8 = local_30;\n        if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }\n      }" { (expression_statement "aVar20.iValue = 0x28;" (assignment_expression "aVar20.iValue = 0x28" (field_expression "aVar20.iValue" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar17.zToken = (char *)0x0;" (assignment_expression "aVar17.zToken = (char *)0x0" (field_expression "aVar17.zToken" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);" (assignment_expression "local_30 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" identifier = (cast_expression "(sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))))) ;) (if_statement "if (local_30 == (Mem *)0x0) goto LAB_00062b00;" if (parenthesized_expression "(local_30 == (Mem *)0x0)" ( (binary_expression "local_30 == (Mem *)0x0" identifier == (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062b00;" goto statement_identifier ;)) (expression_statement "uVar5 = *(u32 *)(pExpr_00.iValue + 4);" (assignment_expression "uVar5 = *(u32 *)(pExpr_00.iValue + 4)" identifier = (pointer_expression "*(u32 *)(pExpr_00.iValue + 4)" * (cast_expression "(u32 *)(pExpr_00.iValue + 4)" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 4)" ( (binary_expression "pExpr_00.iValue + 4" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "local_30->db = db;" (assignment_expression "local_30->db = db" (field_expression "local_30->db" identifier -> field_identifier) = identifier) ;) (expression_statement "local_30->flags = 1;" (assignment_expression "local_30->flags = 1" (field_expression "local_30->flags" identifier -> field_identifier) = number_literal) ;) (if_statement "if ((uVar5 & 0x400) == 0) {\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }\n        else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }" if (parenthesized_expression "((uVar5 & 0x400) == 0)" ( (binary_expression "(uVar5 & 0x400) == 0" (parenthesized_expression "(uVar5 & 0x400)" ( (binary_expression "uVar5 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);\n          pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);\n          aVar17 = unaff_s6;\n          z = sqlite3MPrintf(db,(char *)pExpr);\n          if (z == (char *)0x0) goto LAB_00062b04;\n          if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }\n        }" { (expression_statement "aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8);" (assignment_expression "aVar20 = *(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8)" identifier = (pointer_expression "*(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8)" * (cast_expression "(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 8)" ( (binary_expression "pExpr_00.iValue + 8" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4);" (assignment_expression "pExpr = (Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4)" identifier = (cast_expression "(Expr *)(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4)" ( (binary_expression "PTR_yy_shift_ofst_376__000f52d4 + -0x7ff4" identifier + number_literal) )))) ;) (expression_statement "aVar17 = unaff_s6;" (assignment_expression "aVar17 = unaff_s6" identifier = identifier) ;) (expression_statement "z = sqlite3MPrintf(db,(char *)pExpr);" (assignment_expression "z = sqlite3MPrintf(db,(char *)pExpr)" identifier = (call_expression "sqlite3MPrintf(db,(char *)pExpr)" identifier (argument_list "(db,(char *)pExpr)" ( identifier , (cast_expression "(char *)pExpr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (z == (char *)0x0) goto LAB_00062b04;" if (parenthesized_expression "(z == (char *)0x0)" ( (binary_expression "z == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062b04;" goto statement_identifier ;)) (if_statement "if (local_30 != (Mem *)0x0) {\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }" if (parenthesized_expression "(local_30 != (Mem *)0x0)" ( (binary_expression "local_30 != (Mem *)0x0" identifier != (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            aVar20.iValue = 1;\n            sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          }" { (expression_statement "aVar20.iValue = 1;" (assignment_expression "aVar20.iValue = 1" (field_expression "aVar20.iValue" identifier . field_identifier) = number_literal) ;) (expression_statement "sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));" (call_expression "sqlite3VdbeMemSetStr\n                      (local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4))" identifier (argument_list "(local_30,z,-1,'\x01',(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4))" ( identifier , identifier , number_literal , (char_literal "'\x01'" ' escape_sequence ') , (cast_expression "(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4)" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x67f4)" ( (binary_expression "PTR_LAB_000f52ec + 0x67f4" identifier + number_literal) ))) ))) ;) })) }) (else_clause "else {\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }" else (compound_statement "{\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          local_30->flags = 4;\n          (local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;\n        }" { (expression_statement "iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;" (assignment_expression "iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue" identifier = (field_expression "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue" (parenthesized_expression "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 8)" ( (binary_expression "pExpr_00.iValue + 8" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))) )) -> field_identifier)) ;) (expression_statement "local_30->flags = 4;" (assignment_expression "local_30->flags = 4" (field_expression "local_30->flags" identifier -> field_identifier) = number_literal) ;) (expression_statement "(local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7;" (assignment_expression "(local_30->u).i = (longlong)iVar6 * (longlong)unaff_s7" (field_expression "(local_30->u).i" (parenthesized_expression "(local_30->u)" ( (field_expression "local_30->u" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(longlong)iVar6 * (longlong)unaff_s7" (cast_expression "(longlong)iVar6" ( (type_descriptor "longlong" type_identifier) ) identifier) * (cast_expression "(longlong)unaff_s7" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) }))) (if_statement "if (((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)) {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }\n        else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }" if (parenthesized_expression "(((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41))" ( (binary_expression "((bVar11 == 0x98) || (bVar11 == 0x96)) && ((byte *)aVar19.zToken == (byte *)0x41)" (parenthesized_expression "((bVar11 == 0x98) || (bVar11 == 0x96))" ( (binary_expression "(bVar11 == 0x98) || (bVar11 == 0x96)" (parenthesized_expression "(bVar11 == 0x98)" ( (binary_expression "bVar11 == 0x98" identifier == number_literal) )) || (parenthesized_expression "(bVar11 == 0x96)" ( (binary_expression "bVar11 == 0x96" identifier == number_literal) ))) )) && (parenthesized_expression "((byte *)aVar19.zToken == (byte *)0x41)" ( (binary_expression "(byte *)aVar19.zToken == (byte *)0x41" (cast_expression "(byte *)aVar19.zToken" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar19.zToken" identifier . field_identifier)) == (cast_expression "(byte *)0x41" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          aVar17.iValue = 1;\n          pExpr = (Expr *)0x43;\n          applyAffinity(local_30,'C','\x01');\n        }" { (expression_statement "aVar17.iValue = 1;" (assignment_expression "aVar17.iValue = 1" (field_expression "aVar17.iValue" identifier . field_identifier) = number_literal) ;) (expression_statement "pExpr = (Expr *)0x43;" (assignment_expression "pExpr = (Expr *)0x43" identifier = (cast_expression "(Expr *)0x43" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "applyAffinity(local_30,'C','\x01');" (call_expression "applyAffinity(local_30,'C','\x01')" identifier (argument_list "(local_30,'C','\x01')" ( identifier , (char_literal "'C'" ' character ') , (char_literal "'\x01'" ' escape_sequence ') ))) ;) }) (else_clause "else {\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }" else (compound_statement "{\n          aVar17.iValue = 1;\n          pExpr = (Expr *)(int)(char)affinity;\n          applyAffinity(local_30,affinity,'\x01');\n        }" { (expression_statement "aVar17.iValue = 1;" (assignment_expression "aVar17.iValue = 1" (field_expression "aVar17.iValue" identifier . field_identifier) = number_literal) ;) (expression_statement "pExpr = (Expr *)(int)(char)affinity;" (assignment_expression "pExpr = (Expr *)(int)(char)affinity" identifier = (cast_expression "(Expr *)(int)(char)affinity" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)affinity" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)affinity" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (expression_statement "applyAffinity(local_30,affinity,'\x01');" (call_expression "applyAffinity(local_30,affinity,'\x01')" identifier (argument_list "(local_30,affinity,'\x01')" ( identifier , identifier , (char_literal "'\x01'" ' escape_sequence ') ))) ;) }))) (if_statement "if ((local_30->flags & 0x2c) != 0) {\n          local_30->flags = local_30->flags & 0xfffd;\n        }" if (parenthesized_expression "((local_30->flags & 0x2c) != 0)" ( (binary_expression "(local_30->flags & 0x2c) != 0" (parenthesized_expression "(local_30->flags & 0x2c)" ( (binary_expression "local_30->flags & 0x2c" (field_expression "local_30->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          local_30->flags = local_30->flags & 0xfffd;\n        }" { (expression_statement "local_30->flags = local_30->flags & 0xfffd;" (assignment_expression "local_30->flags = local_30->flags & 0xfffd" (field_expression "local_30->flags" identifier -> field_identifier) = (binary_expression "local_30->flags & 0xfffd" (field_expression "local_30->flags" identifier -> field_identifier) & number_literal)) ;) })) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "psVar8 = local_30;" (assignment_expression "psVar8 = local_30" identifier = identifier) ;) (if_statement "if ((byte *)aVar16.zToken != (byte *)0x1) {\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }" if (parenthesized_expression "((byte *)aVar16.zToken != (byte *)0x1)" ( (binary_expression "(byte *)aVar16.zToken != (byte *)0x1" (cast_expression "(byte *)aVar16.zToken" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.zToken" identifier . field_identifier)) != (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((local_30->flags & 2) == 0) goto LAB_00062a94;\n          pExpr = (Expr *)aVar16;\n          iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();\n          psVar8 = local_30;\n        }" { (if_statement "if ((local_30->flags & 2) == 0) goto LAB_00062a94;" if (parenthesized_expression "((local_30->flags & 2) == 0)" ( (binary_expression "(local_30->flags & 2) == 0" (parenthesized_expression "(local_30->flags & 2)" ( (binary_expression "local_30->flags & 2" (field_expression "local_30->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00062a94;" goto statement_identifier ;)) (expression_statement "pExpr = (Expr *)aVar16;" (assignment_expression "pExpr = (Expr *)aVar16" identifier = (cast_expression "(Expr *)aVar16" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))();" (assignment_expression "iVar6 = (*(code *)(PTR_DAT_000f52e8 + -0x4b48))()" identifier = (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4b48))()" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4b48))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x4b48)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x4b48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x4b48)" ( (binary_expression "PTR_DAT_000f52e8 + -0x4b48" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "psVar8 = local_30;" (assignment_expression "psVar8 = local_30" identifier = identifier) ;) })) }) (else_clause "else {\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }" else (compound_statement "{\n        if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }\n        if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }\n      }" { (if_statement "if (bVar11 == 0xaa) {\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }" if (parenthesized_expression "(bVar11 == 0xaa)" ( (binary_expression "bVar11 == 0xaa" identifier == number_literal) )) (compound_statement "{\n          pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;\n          goto LAB_00062b54;\n        }" { (expression_statement "pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken;" (assignment_expression "pExpr_00 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 0xc)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 0xc)" ( (binary_expression "pExpr_00.iValue + 0xc" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) (goto_statement "goto LAB_00062b54;" goto statement_identifier ;) })) (if_statement "if (bVar11 == 0x77) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }\n        else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }" if (parenthesized_expression "(bVar11 == 0x77)" ( (binary_expression "bVar11 == 0x77" identifier == number_literal) )) (compound_statement "{\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 1;\n        }" { (expression_statement "aVar20.iValue = 0x28;" (assignment_expression "aVar20.iValue = 0x28" (field_expression "aVar20.iValue" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar17.zToken = (char *)0x0;" (assignment_expression "aVar17.zToken = (char *)0x0" (field_expression "aVar17.zToken" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);" (assignment_expression "psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" identifier = (cast_expression "(sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))))) ;) (if_statement "if (psVar8 == (Mem *)0x0) {\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }" if (parenthesized_expression "(psVar8 == (Mem *)0x0)" ( (binary_expression "psVar8 == (Mem *)0x0" identifier == (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00062b00:\n            local_30 = (Mem *)0x0;\nLAB_00062b04:\n            uVar5._0_1_ = db->temp_store;\n            uVar5._1_1_ = db->mallocFailed;\n            uVar5._2_1_ = db->bBenignMalloc;\n            uVar5._3_1_ = db->dfltLockMode;\n            if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }\n            iVar6 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }" { (labeled_statement "LAB_00062b00:\n            local_30 = (Mem *)0x0;" statement_identifier : (expression_statement "local_30 = (Mem *)0x0;" (assignment_expression "local_30 = (Mem *)0x0" identifier = (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_00062b04:\n            uVar5._0_1_ = db->temp_store;" statement_identifier : (expression_statement "uVar5._0_1_ = db->temp_store;" (assignment_expression "uVar5._0_1_ = db->temp_store" (field_expression "uVar5._0_1_" identifier . field_identifier) = (field_expression "db->temp_store" identifier -> field_identifier)) ;)) (expression_statement "uVar5._1_1_ = db->mallocFailed;" (assignment_expression "uVar5._1_1_ = db->mallocFailed" (field_expression "uVar5._1_1_" identifier . field_identifier) = (field_expression "db->mallocFailed" identifier -> field_identifier)) ;) (expression_statement "uVar5._2_1_ = db->bBenignMalloc;" (assignment_expression "uVar5._2_1_ = db->bBenignMalloc" (field_expression "uVar5._2_1_" identifier . field_identifier) = (field_expression "db->bBenignMalloc" identifier -> field_identifier)) ;) (expression_statement "uVar5._3_1_ = db->dfltLockMode;" (assignment_expression "uVar5._3_1_ = db->dfltLockMode" (field_expression "uVar5._3_1_" identifier . field_identifier) = (field_expression "db->dfltLockMode" identifier -> field_identifier)) ;) (if_statement "if ((uVar5 & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }" if (parenthesized_expression "((uVar5 & 0xffff00) == 0)" ( (binary_expression "(uVar5 & 0xffff00) == 0" (parenthesized_expression "(uVar5 & 0xffff00)" ( (binary_expression "uVar5 & 0xffff00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x67b4))(db);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x67b4))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x67b4))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x67b4)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x67b4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x67b4)" ( (binary_expression "PTR_LAB_000f52ec + 0x67b4" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))) ;) })) (expression_statement "iVar6 = 7;" (assignment_expression "iVar6 = 7" identifier = number_literal) ;) (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x6be0))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x6be0)" * (cast_expression "(code *)(PTR_LAB_000f52ec + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x6be0)" ( (binary_expression "PTR_LAB_000f52ec + -0x6be0" identifier + number_literal) )))) )) (argument_list "(local_30)" ( identifier ))) ;) (goto_statement "goto LAB_00062a9c;" goto statement_identifier ;) })) (expression_statement "psVar8->db = db;" (assignment_expression "psVar8->db = db" (field_expression "psVar8->db" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "psVar8->flags = 1;" (assignment_expression "psVar8->flags = 1" (field_expression "psVar8->flags" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }" else (if_statement "if (bVar11 == 0x97) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }\n        else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }" if (parenthesized_expression "(bVar11 == 0x97)" ( (binary_expression "bVar11 == 0x97" identifier == number_literal) )) (compound_statement "{\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (pMem == (Mem *)0x0) goto LAB_00062b00;\n          iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          pMem->db = db;\n          iVar6 = iVar6 + 2;\n          pMem->flags = 1;\n          local_30 = pMem;\n          if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }\n          pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);\n          aVar20.zToken = (char *)0x0;\n          iVar6 = 0;\n          aVar17 = pExpr_00;\n          sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));\n          psVar8 = local_30;\n        }" { (expression_statement "aVar20.iValue = 0x28;" (assignment_expression "aVar20.iValue = 0x28" (field_expression "aVar20.iValue" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar17.zToken = (char *)0x0;" (assignment_expression "aVar17.zToken = (char *)0x0" (field_expression "aVar17.zToken" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);" (assignment_expression "pMem = (Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" identifier = (cast_expression "(Mem *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))))) ;) (if_statement "if (pMem == (Mem *)0x0) goto LAB_00062b00;" if (parenthesized_expression "(pMem == (Mem *)0x0)" ( (binary_expression "pMem == (Mem *)0x0" identifier == (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062b00;" goto statement_identifier ;)) (expression_statement "iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;" (assignment_expression "iVar6 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue" identifier = (field_expression "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue" (parenthesized_expression "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 8)" ( (binary_expression "pExpr_00.iValue + 8" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))) )) -> field_identifier)) ;) (expression_statement "pMem->db = db;" (assignment_expression "pMem->db = db" (field_expression "pMem->db" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar6 = iVar6 + 2;" (assignment_expression "iVar6 = iVar6 + 2" identifier = (binary_expression "iVar6 + 2" identifier + number_literal)) ;) (expression_statement "pMem->flags = 1;" (assignment_expression "pMem->flags = 1" (field_expression "pMem->flags" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_30 = pMem;" (assignment_expression "local_30 = pMem" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }\n          else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            pExpr_00.zToken = (char *)0x0;\n            iVar10 = -1;\n          }" { (expression_statement "pExpr_00.zToken = (char *)0x0;" (assignment_expression "pExpr_00.zToken = (char *)0x0" (field_expression "pExpr_00.zToken" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }" else (compound_statement "{\n            uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);\n            iVar10 = (uVar5 & 0x3fffffff) - 1;\n            pExpr_00.iValue = iVar10 / 2;\n          }" { (expression_statement "uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6);" (assignment_expression "uVar5 = (*(code *)PTR_strlen_000f5488)(iVar6)" identifier = (call_expression "(*(code *)PTR_strlen_000f5488)(iVar6)" (parenthesized_expression "(*(code *)PTR_strlen_000f5488)" ( (pointer_expression "*(code *)PTR_strlen_000f5488" * (cast_expression "(code *)PTR_strlen_000f5488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "iVar10 = (uVar5 & 0x3fffffff) - 1;" (assignment_expression "iVar10 = (uVar5 & 0x3fffffff) - 1" identifier = (binary_expression "(uVar5 & 0x3fffffff) - 1" (parenthesized_expression "(uVar5 & 0x3fffffff)" ( (binary_expression "uVar5 & 0x3fffffff" identifier & number_literal) )) - number_literal)) ;) (expression_statement "pExpr_00.iValue = iVar10 / 2;" (assignment_expression "pExpr_00.iValue = iVar10 / 2" (field_expression "pExpr_00.iValue" identifier . field_identifier) = (binary_expression "iVar10 / 2" identifier / number_literal)) ;) }))) (expression_statement "pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10);" (assignment_expression "pExpr = (Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10)" identifier = (cast_expression "(Expr *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(db,iVar6,iVar10)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7d5c))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7d5c)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7d5c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7d5c)" ( (binary_expression "PTR_LAB_000f52ec + 0x7d5c" identifier + number_literal) )))) )) (argument_list "(db,iVar6,iVar10)" ( identifier , identifier , identifier ))))) ;) (expression_statement "aVar20.zToken = (char *)0x0;" (assignment_expression "aVar20.zToken = (char *)0x0" (field_expression "aVar20.zToken" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "aVar17 = pExpr_00;" (assignment_expression "aVar17 = pExpr_00" identifier = identifier) ;) (expression_statement "sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4));" (call_expression "sqlite3VdbeMemSetStr\n                    (pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4))" identifier (argument_list "(pMem,(char *)pExpr,pExpr_00.iValue,'\0',\n                     (_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4))" ( identifier , (cast_expression "(char *)pExpr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "pExpr_00.iValue" identifier . field_identifier) , (char_literal "'\0'" ' escape_sequence ') , (cast_expression "(_func_void_void_ptr *)(PTR_LAB_000f52ec + 0x67f4)" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x67f4)" ( (binary_expression "PTR_LAB_000f52ec + 0x67f4" identifier + number_literal) ))) ))) ;) (expression_statement "psVar8 = local_30;" (assignment_expression "psVar8 = local_30" identifier = identifier) ;) }) (else_clause "else if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }" else (if_statement "if (bVar11 == 0xa7) {\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }\n        else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }" if (parenthesized_expression "(bVar11 == 0xa7)" ( (binary_expression "bVar11 == 0xa7" identifier == number_literal) )) (compound_statement "{\n          aVar20.iValue = 0x28;\n          aVar17.zToken = (char *)0x0;\n          psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);\n          if (psVar8 == (Mem *)0x0) goto LAB_00062a94;\n          iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;\n          psVar8->db = db;\n          iVar6 = 0;\n          psVar8->flags = 4;\n          cVar3 = *(char *)(iVar10 + 4);\n          (psVar8->u).nZero = 0;\n          *(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');\n        }" { (expression_statement "aVar20.iValue = 0x28;" (assignment_expression "aVar20.iValue = 0x28" (field_expression "aVar20.iValue" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar17.zToken = (char *)0x0;" (assignment_expression "aVar17.zToken = (char *)0x0" (field_expression "aVar17.zToken" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db);" (assignment_expression "psVar8 = (sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" identifier = (cast_expression "(sqlite3_value *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))))) ;) (if_statement "if (psVar8 == (Mem *)0x0) goto LAB_00062a94;" if (parenthesized_expression "(psVar8 == (Mem *)0x0)" ( (binary_expression "psVar8 == (Mem *)0x0" identifier == (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062a94;" goto statement_identifier ;)) (expression_statement "iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue;" (assignment_expression "iVar10 = ((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue" identifier = (field_expression "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))->iValue" (parenthesized_expression "((anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(pExpr_00.iValue + 8)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pExpr_00.iValue + 8)" ( (binary_expression "pExpr_00.iValue + 8" (field_expression "pExpr_00.iValue" identifier . field_identifier) + number_literal) ))) )) -> field_identifier)) ;) (expression_statement "psVar8->db = db;" (assignment_expression "psVar8->db = db" (field_expression "psVar8->db" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "psVar8->flags = 4;" (assignment_expression "psVar8->flags = 4" (field_expression "psVar8->flags" identifier -> field_identifier) = number_literal) ;) (expression_statement "cVar3 = *(char *)(iVar10 + 4);" (assignment_expression "cVar3 = *(char *)(iVar10 + 4)" identifier = (pointer_expression "*(char *)(iVar10 + 4)" * (cast_expression "(char *)(iVar10 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "(psVar8->u).nZero = 0;" (assignment_expression "(psVar8->u).nZero = 0" (field_expression "(psVar8->u).nZero" (parenthesized_expression "(psVar8->u)" ( (field_expression "psVar8->u" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "*(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0');" (assignment_expression "*(uint *)((int)&psVar8->u + 4) = (uint)(cVar3 == '\0')" (pointer_expression "*(uint *)((int)&psVar8->u + 4)" * (cast_expression "(uint *)((int)&psVar8->u + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar8->u + 4)" ( (binary_expression "(int)&psVar8->u + 4" (cast_expression "(int)&psVar8->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar8->u" & (field_expression "psVar8->u" identifier -> field_identifier))) + number_literal) )))) = (call_expression "(uint)(cVar3 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ;) }) (else_clause "else {\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }" else (compound_statement "{\n          iVar6 = 0;\n          psVar8 = (Mem *)0x0;\n        }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "psVar8 = (Mem *)0x0;" (assignment_expression "psVar8 = (Mem *)0x0" identifier = (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))))) })))) }))) (expression_statement "*ppVal = psVar8;" (assignment_expression "*ppVal = psVar8" (pointer_expression "*ppVal" * identifier) = identifier) ;) }))) (labeled_statement "LAB_00062a9c:\n  if (local_2c == *(Parse **)puVar4) {\n    return iVar6;\n  }" statement_identifier : (if_statement "if (local_2c == *(Parse **)puVar4) {\n    return iVar6;\n  }" if (parenthesized_expression "(local_2c == *(Parse **)puVar4)" ( (binary_expression "local_2c == *(Parse **)puVar4" identifier == (pointer_expression "*(Parse **)puVar4" * (cast_expression "(Parse **)puVar4" ( (type_descriptor "Parse **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) }))) (expression_statement "pcVar27 = sqlite3ExprCompare;" (assignment_expression "pcVar27 = sqlite3ExprCompare" identifier = identifier) ;) (expression_statement "pParse = local_2c;" (assignment_expression "pParse = local_2c" identifier = identifier) ;) (expression_statement "puVar26 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar26 = 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 "puVar21 = *(undefined4 **)(puVar26 + 0x92690);" (assignment_expression "puVar21 = *(undefined4 **)(puVar26 + 0x92690)" identifier = (pointer_expression "*(undefined4 **)(puVar26 + 0x92690)" * (cast_expression "(undefined4 **)(puVar26 + 0x92690)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x92690)" ( (binary_expression "puVar26 + 0x92690" identifier + number_literal) ))))) ;) (expression_statement "puStack_74 = puVar4;" (assignment_expression "puStack_74 = puVar4" identifier = identifier) ;) (expression_statement "ppsStack_70 = ppVal;" (assignment_expression "ppsStack_70 = ppVal" identifier = identifier) ;) (expression_statement "piStack_84 = (int *)*puVar21;" (assignment_expression "piStack_84 = (int *)*puVar21" identifier = (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (expression_statement "aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;" (assignment_expression "aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr" identifier = (cast_expression "(anon_union_4_2_443a03b8_for_u)pExpr" ( (type_descriptor "anon_union_4_2_443a03b8_for_u" type_identifier) ) identifier)) ;) (expression_statement "aVar18 = aVar17;" (assignment_expression "aVar18 = aVar17" identifier = identifier) ;) (expression_statement "iStack_7c = iVar6;" (assignment_expression "iStack_7c = iVar6" identifier = identifier) ;) (expression_statement "aStack_78 = pExpr_00;" (assignment_expression "aStack_78 = pExpr_00" identifier = identifier) ;) (expression_statement "aStack_6c = aVar19;" (assignment_expression "aStack_6c = aVar19" identifier = identifier) ;) (expression_statement "aStack_68 = aVar23;" (assignment_expression "aStack_68 = aVar23" identifier = identifier) ;) (expression_statement "aStack_64 = unaff_s6;" (assignment_expression "aStack_64 = unaff_s6" identifier = identifier) ;) (expression_statement "iStack_60 = unaff_s7;" (assignment_expression "iStack_60 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar27;" (assignment_expression "pcStack_5c = pcVar27" identifier = identifier) ;) (if_statement "if (pExpr == (Expr *)0x0) {\n    iVar6 = 0;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    iVar6 = 2;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n    if ((pParse != (Parse *)0x0) && (*(char *)pExpr == -0x67)) {\n      aVar18.iValue = 1;\n      aStack_88.zToken = (char *)0x0;\n      aVar16 = aVar17;\n      valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c);\n      if (aStack_88.zToken != (char *)0x0) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);\n        pVVar12 = pParse->pVdbe;\n        if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }\n        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);\n        if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar25 = *(uint *)((int)pExpr + 4);\n    uVar5 = *(uint *)(aVar17.iValue + 4);\n    uVar24 = uVar25 | uVar5;\n    if ((uVar24 & 0x400) != 0) {\n      iVar6 = 2;\n      if ((uVar5 & 0x400 & uVar25) == 0) goto LAB_00062fb8;\n      if (*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar11 = pExpr->op;\n    bVar13 = *aVar17.zToken;\n    if (bVar11 == bVar13) {\n      if (bVar11 == 0x47) goto LAB_00062fb4;\n      if (((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)) goto LAB_0006305c;\n      if ((bVar11 == 0xa9) || (bVar11 == 0xa5)) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);\n        do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );\n      }\n      if (bVar11 == 0x77) goto LAB_00062f88;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n      if (bVar11 == 0x6f) {\n        iVar6 = (**(code **)(puVar26 + 0x9254c))();\n        if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar11 == 0x6f) {\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n      aVar18 = aVar17;\n      iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue);\n      if (1 < iVar6) {\n        bVar13 = *aVar17.zToken;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      iVar6 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar13 == 0x6f) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n      iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);\n      aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      if (iVar6 < 2) goto LAB_0006323c;\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    iVar6 = 0;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n  }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;" if (parenthesized_expression "(aVar17.zToken == (char *)0x0)" ( (binary_expression "aVar17.zToken == (char *)0x0" (field_expression "aVar17.zToken" identifier . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar6 = 2;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n    if ((pParse != (Parse *)0x0) && (*(char *)pExpr == -0x67)) {\n      aVar18.iValue = 1;\n      aStack_88.zToken = (char *)0x0;\n      aVar16 = aVar17;\n      valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c);\n      if (aStack_88.zToken != (char *)0x0) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);\n        pVVar12 = pParse->pVdbe;\n        if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }\n        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);\n        if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar25 = *(uint *)((int)pExpr + 4);\n    uVar5 = *(uint *)(aVar17.iValue + 4);\n    uVar24 = uVar25 | uVar5;\n    if ((uVar24 & 0x400) != 0) {\n      iVar6 = 2;\n      if ((uVar5 & 0x400 & uVar25) == 0) goto LAB_00062fb8;\n      if (*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar11 = pExpr->op;\n    bVar13 = *aVar17.zToken;\n    if (bVar11 == bVar13) {\n      if (bVar11 == 0x47) goto LAB_00062fb4;\n      if (((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)) goto LAB_0006305c;\n      if ((bVar11 == 0xa9) || (bVar11 == 0xa5)) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);\n        do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );\n      }\n      if (bVar11 == 0x77) goto LAB_00062f88;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n      if (bVar11 == 0x6f) {\n        iVar6 = (**(code **)(puVar26 + 0x9254c))();\n        if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar11 == 0x6f) {\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n      aVar18 = aVar17;\n      iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue);\n      if (1 < iVar6) {\n        bVar13 = *aVar17.zToken;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      iVar6 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar13 == 0x6f) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n      iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);\n      aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      if (iVar6 < 2) goto LAB_0006323c;\n    }\n  }" else (compound_statement "{\n    iVar6 = 2;\n    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;\n    if ((pParse != (Parse *)0x0) && (*(char *)pExpr == -0x67)) {\n      aVar18.iValue = 1;\n      aStack_88.zToken = (char *)0x0;\n      aVar16 = aVar17;\n      valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c);\n      if (aStack_88.zToken != (char *)0x0) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);\n        pVVar12 = pParse->pVdbe;\n        if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }\n        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);\n        if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar25 = *(uint *)((int)pExpr + 4);\n    uVar5 = *(uint *)(aVar17.iValue + 4);\n    uVar24 = uVar25 | uVar5;\n    if ((uVar24 & 0x400) != 0) {\n      iVar6 = 2;\n      if ((uVar5 & 0x400 & uVar25) == 0) goto LAB_00062fb8;\n      if (*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar11 = pExpr->op;\n    bVar13 = *aVar17.zToken;\n    if (bVar11 == bVar13) {\n      if (bVar11 == 0x47) goto LAB_00062fb4;\n      if (((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)) goto LAB_0006305c;\n      if ((bVar11 == 0xa9) || (bVar11 == 0xa5)) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);\n        do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );\n      }\n      if (bVar11 == 0x77) goto LAB_00062f88;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n      if (bVar11 == 0x6f) {\n        iVar6 = (**(code **)(puVar26 + 0x9254c))();\n        if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar11 == 0x6f) {\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n      aVar18 = aVar17;\n      iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue);\n      if (1 < iVar6) {\n        bVar13 = *aVar17.zToken;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      iVar6 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar13 == 0x6f) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n      iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);\n      aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      if (iVar6 < 2) goto LAB_0006323c;\n    }\n  }" { (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;) (if_statement "if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;" if (parenthesized_expression "(aVar17.zToken == (char *)0x0)" ( (binary_expression "aVar17.zToken == (char *)0x0" (field_expression "aVar17.zToken" identifier . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if ((pParse != (Parse *)0x0) && (*(char *)pExpr == -0x67)) {\n      aVar18.iValue = 1;\n      aStack_88.zToken = (char *)0x0;\n      aVar16 = aVar17;\n      valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c);\n      if (aStack_88.zToken != (char *)0x0) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);\n        pVVar12 = pParse->pVdbe;\n        if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }\n        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);\n        if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((pParse != (Parse *)0x0) && (*(char *)pExpr == -0x67))" ( (binary_expression "(pParse != (Parse *)0x0) && (*(char *)pExpr == -0x67)" (parenthesized_expression "(pParse != (Parse *)0x0)" ( (binary_expression "pParse != (Parse *)0x0" identifier != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(char *)pExpr == -0x67)" ( (binary_expression "*(char *)pExpr == -0x67" (pointer_expression "*(char *)pExpr" * (cast_expression "(char *)pExpr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) ))) )) (compound_statement "{\n      aVar18.iValue = 1;\n      aStack_88.zToken = (char *)0x0;\n      aVar16 = aVar17;\n      valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c);\n      if (aStack_88.zToken != (char *)0x0) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);\n        pVVar12 = pParse->pVdbe;\n        if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }\n        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);\n        if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }" { (expression_statement "aVar18.iValue = 1;" (assignment_expression "aVar18.iValue = 1" (field_expression "aVar18.iValue" identifier . field_identifier) = number_literal) ;) (expression_statement "aStack_88.zToken = (char *)0x0;" (assignment_expression "aStack_88.zToken = (char *)0x0" (field_expression "aStack_88.zToken" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar16 = aVar17;" (assignment_expression "aVar16 = aVar17" identifier = identifier) ;) (expression_statement "valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c);" (call_expression "valueFromExpr(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c)" identifier (argument_list "(pParse->db,(Expr *)aVar17.zToken,'\x01','A',(sqlite3_value **)&aStack_88.zToken,\n                    in_stack_ffffff6c)" ( (field_expression "pParse->db" identifier -> field_identifier) , (cast_expression "(Expr *)aVar17.zToken" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar17.zToken" identifier . field_identifier)) , (char_literal "'\x01'" ' escape_sequence ') , (char_literal "'A'" ' character ') , (cast_expression "(sqlite3_value **)&aStack_88.zToken" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&aStack_88.zToken" & (field_expression "aStack_88.zToken" identifier . field_identifier))) , identifier ))) ;) (if_statement "if (aStack_88.zToken != (char *)0x0) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);\n        pVVar12 = pParse->pVdbe;\n        if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }\n        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);\n        if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }" if (parenthesized_expression "(aStack_88.zToken != (char *)0x0)" ( (binary_expression "aStack_88.zToken != (char *)0x0" (field_expression "aStack_88.zToken" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);\n        pVVar12 = pParse->pVdbe;\n        if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }\n        psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);\n        if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }" { (expression_statement "aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20);" (assignment_expression "aVar16 = (anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20)" identifier = (binary_expression "(anon_union_4_2_443a03b8_for_u)(int)*(short *)((int)pExpr + 0x20)" (call_expression "(anon_union_4_2_443a03b8_for_u)(int)" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "(int)" ( identifier ))) * (cast_expression "(short *)((int)pExpr + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 0x20)" ( (binary_expression "(int)pExpr + 0x20" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pVVar12 = pParse->pVdbe;" (assignment_expression "pVVar12 = pParse->pVdbe" identifier = (field_expression "pParse->pVdbe" identifier -> field_identifier)) ;) (if_statement "if (aVar16.iValue < 0x20) {\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }\n        else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }" if (parenthesized_expression "(aVar16.iValue < 0x20)" ( (binary_expression "aVar16.iValue < 0x20" (field_expression "aVar16.iValue" identifier . field_identifier) < number_literal) )) (compound_statement "{\n          aVar18.zToken = (char *)(aVar16.iValue + -1);\n          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;\n        }" { (expression_statement "aVar18.zToken = (char *)(aVar16.iValue + -1);" (assignment_expression "aVar18.zToken = (char *)(aVar16.iValue + -1)" (field_expression "aVar18.zToken" identifier . field_identifier) = (cast_expression "(char *)(aVar16.iValue + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar16.iValue + -1)" ( (binary_expression "aVar16.iValue + -1" (field_expression "aVar16.iValue" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;" (assignment_expression "pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask" (field_expression "pVVar12->expmask" identifier -> field_identifier) = (binary_expression "1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask" (binary_expression "1 << (aVar18.iValue & 0x1fU)" number_literal << (parenthesized_expression "(aVar18.iValue & 0x1fU)" ( (binary_expression "aVar18.iValue & 0x1fU" (field_expression "aVar18.iValue" identifier . field_identifier) & number_literal) ))) | (field_expression "pVVar12->expmask" identifier -> field_identifier))) ;) }) (else_clause "else {\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }" else (compound_statement "{\n          pVVar12->expmask = pVVar12->expmask | 0x80000000;\n        }" { (expression_statement "pVVar12->expmask = pVVar12->expmask | 0x80000000;" (assignment_expression "pVVar12->expmask = pVVar12->expmask | 0x80000000" (field_expression "pVVar12->expmask" identifier -> field_identifier) = (binary_expression "pVVar12->expmask | 0x80000000" (field_expression "pVVar12->expmask" identifier -> field_identifier) | number_literal)) ;) }))) (expression_statement "psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue);" (assignment_expression "psVar8 = sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue)" identifier = (call_expression "sqlite3VdbeGetBoundValue(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue)" identifier (argument_list "(pParse->pReprepare,aVar16.iValue,(u8)aVar18.iValue)" ( (field_expression "pParse->pReprepare" identifier -> field_identifier) , (field_expression "aVar16.iValue" identifier . field_identifier) , (cast_expression "(u8)aVar18.iValue" ( (type_descriptor "u8" type_identifier) ) (field_expression "aVar18.iValue" identifier . field_identifier)) )))) ;) (if_statement "if (psVar8 == (sqlite3_value *)0x0) {\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }\n        else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }" if (parenthesized_expression "(psVar8 == (sqlite3_value *)0x0)" ( (binary_expression "psVar8 == (sqlite3_value *)0x0" identifier == (cast_expression "(sqlite3_value *)0x0" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar6 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar6 + -0x6be0))(0);\n        }" { (expression_statement "iVar6 = *(int *)(puVar26 + 0x92414);" (assignment_expression "iVar6 = *(int *)(puVar26 + 0x92414)" identifier = (pointer_expression "*(int *)(puVar26 + 0x92414)" * (cast_expression "(int *)(puVar26 + 0x92414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x92414)" ( (binary_expression "puVar26 + 0x92414" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(iVar6 + -0x6be0))(aStack_88.zToken);" (call_expression "(*(code *)(iVar6 + -0x6be0))(aStack_88.zToken)" (parenthesized_expression "(*(code *)(iVar6 + -0x6be0))" ( (pointer_expression "*(code *)(iVar6 + -0x6be0)" * (cast_expression "(code *)(iVar6 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0x6be0)" ( (binary_expression "iVar6 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(aStack_88.zToken)" ( (field_expression "aStack_88.zToken" identifier . field_identifier) ))) ;) (expression_statement "(*(code *)(iVar6 + -0x6be0))(0);" (call_expression "(*(code *)(iVar6 + -0x6be0))(0)" (parenthesized_expression "(*(code *)(iVar6 + -0x6be0))" ( (pointer_expression "*(code *)(iVar6 + -0x6be0)" * (cast_expression "(code *)(iVar6 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0x6be0)" ( (binary_expression "iVar6 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }" else (compound_statement "{\n          iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);\n          if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }\n          aVar18.zToken = (char *)0x0;\n          aVar16 = aStack_88;\n          iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);\n          iVar10 = *(int *)(puVar26 + 0x92414);\n          (*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);\n          (*(code *)(iVar10 + -0x6be0))(psVar8);\n          if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }\n        }" { (expression_statement "iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8);" (assignment_expression "iVar6 = (**(code **)(puVar26 + 0x92614))(psVar8)" identifier = (call_expression "(**(code **)(puVar26 + 0x92614))(psVar8)" (parenthesized_expression "(**(code **)(puVar26 + 0x92614))" ( (pointer_expression "**(code **)(puVar26 + 0x92614)" * (pointer_expression "*(code **)(puVar26 + 0x92614)" * (cast_expression "(code **)(puVar26 + 0x92614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x92614)" ( (binary_expression "puVar26 + 0x92614" identifier + number_literal) ))))) )) (argument_list "(psVar8)" ( identifier )))) ;) (if_statement "if (iVar6 == 3) {\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }" if (parenthesized_expression "(iVar6 == 3)" ( (binary_expression "iVar6 == 3" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(puVar26 + 0x924c4))(psVar8);\n          }" { (expression_statement "(**(code **)(puVar26 + 0x924c4))(psVar8);" (call_expression "(**(code **)(puVar26 + 0x924c4))(psVar8)" (parenthesized_expression "(**(code **)(puVar26 + 0x924c4))" ( (pointer_expression "**(code **)(puVar26 + 0x924c4)" * (pointer_expression "*(code **)(puVar26 + 0x924c4)" * (cast_expression "(code **)(puVar26 + 0x924c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x924c4)" ( (binary_expression "puVar26 + 0x924c4" identifier + number_literal) ))))) )) (argument_list "(psVar8)" ( identifier ))) ;) })) (expression_statement "aVar18.zToken = (char *)0x0;" (assignment_expression "aVar18.zToken = (char *)0x0" (field_expression "aVar18.zToken" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar16 = aStack_88;" (assignment_expression "aVar16 = aStack_88" identifier = identifier) ;) (expression_statement "iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0);" (assignment_expression "iVar6 = sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0)" identifier = (call_expression "sqlite3MemCompare(psVar8,aStack_88.iValue,(CollSeq *)0x0)" identifier (argument_list "(psVar8,aStack_88.iValue,(CollSeq *)0x0)" ( identifier , (field_expression "aStack_88.iValue" identifier . field_identifier) , (cast_expression "(CollSeq *)0x0" ( (type_descriptor "CollSeq *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "iVar10 = *(int *)(puVar26 + 0x92414);" (assignment_expression "iVar10 = *(int *)(puVar26 + 0x92414)" identifier = (pointer_expression "*(int *)(puVar26 + 0x92414)" * (cast_expression "(int *)(puVar26 + 0x92414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x92414)" ( (binary_expression "puVar26 + 0x92414" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(iVar10 + -0x6be0))(aStack_88.zToken);" (call_expression "(*(code *)(iVar10 + -0x6be0))(aStack_88.zToken)" (parenthesized_expression "(*(code *)(iVar10 + -0x6be0))" ( (pointer_expression "*(code *)(iVar10 + -0x6be0)" * (cast_expression "(code *)(iVar10 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x6be0)" ( (binary_expression "iVar10 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(aStack_88.zToken)" ( (field_expression "aStack_88.zToken" identifier . field_identifier) ))) ;) (expression_statement "(*(code *)(iVar10 + -0x6be0))(psVar8);" (call_expression "(*(code *)(iVar10 + -0x6be0))(psVar8)" (parenthesized_expression "(*(code *)(iVar10 + -0x6be0))" ( (pointer_expression "*(code *)(iVar10 + -0x6be0)" * (cast_expression "(code *)(iVar10 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x6be0)" ( (binary_expression "iVar10 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(psVar8)" ( identifier ))) ;) (if_statement "if (iVar6 == 0) {\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar6 = 0;\n            goto LAB_00062fb8;\n          }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;) })) }))) })) })) (expression_statement "uVar25 = *(uint *)((int)pExpr + 4);" (assignment_expression "uVar25 = *(uint *)((int)pExpr + 4)" identifier = (pointer_expression "*(uint *)((int)pExpr + 4)" * (cast_expression "(uint *)((int)pExpr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 4)" ( (binary_expression "(int)pExpr + 4" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(aVar17.iValue + 4);" (assignment_expression "uVar5 = *(uint *)(aVar17.iValue + 4)" identifier = (pointer_expression "*(uint *)(aVar17.iValue + 4)" * (cast_expression "(uint *)(aVar17.iValue + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 4)" ( (binary_expression "aVar17.iValue + 4" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "uVar24 = uVar25 | uVar5;" (assignment_expression "uVar24 = uVar25 | uVar5" identifier = (binary_expression "uVar25 | uVar5" identifier | identifier)) ;) (if_statement "if ((uVar24 & 0x400) != 0) {\n      iVar6 = 2;\n      if ((uVar5 & 0x400 & uVar25) == 0) goto LAB_00062fb8;\n      if (*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }" if (parenthesized_expression "((uVar24 & 0x400) != 0)" ( (binary_expression "(uVar24 & 0x400) != 0" (parenthesized_expression "(uVar24 & 0x400)" ( (binary_expression "uVar24 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar6 = 2;\n      if ((uVar5 & 0x400 & uVar25) == 0) goto LAB_00062fb8;\n      if (*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }" { (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;) (if_statement "if ((uVar5 & 0x400 & uVar25) == 0) goto LAB_00062fb8;" if (parenthesized_expression "((uVar5 & 0x400 & uVar25) == 0)" ( (binary_expression "(uVar5 & 0x400 & uVar25) == 0" (parenthesized_expression "(uVar5 & 0x400 & uVar25)" ( (binary_expression "uVar5 & 0x400 & uVar25" (binary_expression "uVar5 & 0x400" identifier & number_literal) & identifier) )) == number_literal) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if (*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;" if (parenthesized_expression "(*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8))" ( (binary_expression "*(int *)((int)pExpr + 8) != *(int *)(aVar17.iValue + 8)" (pointer_expression "*(int *)((int)pExpr + 8)" * (cast_expression "(int *)((int)pExpr + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 8)" ( (binary_expression "(int)pExpr + 8" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (pointer_expression "*(int *)(aVar17.iValue + 8)" * (cast_expression "(int *)(aVar17.iValue + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 8)" ( (binary_expression "aVar17.iValue + 8" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))))) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (goto_statement "goto LAB_00062f88;" goto statement_identifier ;) })) (expression_statement "bVar11 = pExpr->op;" (assignment_expression "bVar11 = pExpr->op" identifier = (field_expression "pExpr->op" identifier -> field_identifier)) ;) (expression_statement "bVar13 = *aVar17.zToken;" (assignment_expression "bVar13 = *aVar17.zToken" identifier = (pointer_expression "*aVar17.zToken" * (field_expression "aVar17.zToken" identifier . field_identifier))) ;) (if_statement "if (bVar11 == bVar13) {\n      if (bVar11 == 0x47) goto LAB_00062fb4;\n      if (((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)) goto LAB_0006305c;\n      if ((bVar11 == 0xa9) || (bVar11 == 0xa5)) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);\n        do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );\n      }\n      if (bVar11 == 0x77) goto LAB_00062f88;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n      if (bVar11 == 0x6f) {\n        iVar6 = (**(code **)(puVar26 + 0x9254c))();\n        if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }" if (parenthesized_expression "(bVar11 == bVar13)" ( (binary_expression "bVar11 == bVar13" identifier == identifier) )) (compound_statement "{\n      if (bVar11 == 0x47) goto LAB_00062fb4;\n      if (((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)) goto LAB_0006305c;\n      if ((bVar11 == 0xa9) || (bVar11 == 0xa5)) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);\n        do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );\n      }\n      if (bVar11 == 0x77) goto LAB_00062f88;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n      if (bVar11 == 0x6f) {\n        iVar6 = (**(code **)(puVar26 + 0x9254c))();\n        if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }" { (if_statement "if (bVar11 == 0x47) goto LAB_00062fb4;" if (parenthesized_expression "(bVar11 == 0x47)" ( (binary_expression "bVar11 == 0x47" identifier == number_literal) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (if_statement "if (((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)) goto LAB_0006305c;" if (parenthesized_expression "(((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0))" ( (binary_expression "((bVar11 & 0xfd) == 0xa4) ||\n         (pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)" (parenthesized_expression "((bVar11 & 0xfd) == 0xa4)" ( (binary_expression "(bVar11 & 0xfd) == 0xa4" (parenthesized_expression "(bVar11 & 0xfd)" ( (binary_expression "bVar11 & 0xfd" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0)" ( (comma_expression "pbVar14 = *(byte **)((int)pExpr + 8), pbVar14 == (byte *)0x0" (assignment_expression "pbVar14 = *(byte **)((int)pExpr + 8)" identifier = (pointer_expression "*(byte **)((int)pExpr + 8)" * (cast_expression "(byte **)((int)pExpr + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pExpr + 8)" ( (binary_expression "(int)pExpr + 8" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0006305c;" goto statement_identifier ;)) (if_statement "if ((bVar11 == 0xa9) || (bVar11 == 0xa5)) {\n        aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);\n        do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );\n      }" if (parenthesized_expression "((bVar11 == 0xa9) || (bVar11 == 0xa5))" ( (binary_expression "(bVar11 == 0xa9) || (bVar11 == 0xa5)" (parenthesized_expression "(bVar11 == 0xa9)" ( (binary_expression "bVar11 == 0xa9" identifier == number_literal) )) || (parenthesized_expression "(bVar11 == 0xa5)" ( (binary_expression "bVar11 == 0xa5" identifier == number_literal) ))) )) (compound_statement "{\n        aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;\n        aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);\n        do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );\n      }" { (expression_statement "aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;" (assignment_expression "aVar16 = (anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n                 ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 8)" ( (binary_expression "aVar17.iValue + 8" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac);" (assignment_expression "aVar18.zToken = (char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac)" (field_expression "aVar18.zToken" identifier . field_identifier) = (cast_expression "(char *)(*(int *)(puVar26 + 0x923fc) + 0x25ac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x923fc) + 0x25ac)" ( (binary_expression "*(int *)(puVar26 + 0x923fc) + 0x25ac" (pointer_expression "*(int *)(puVar26 + 0x923fc)" * (cast_expression "(int *)(puVar26 + 0x923fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x923fc)" ( (binary_expression "puVar26 + 0x923fc" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        } while( true );" do (compound_statement "{\n          uVar9 = (uint)*pbVar14;\n          if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }\n          pbVar14 = pbVar14 + 1;\n          aVar16.zToken = (char *)(aVar16.iValue + 1);\n        }" { (expression_statement "uVar9 = (uint)*pbVar14;" (assignment_expression "uVar9 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar9 == (byte)*aVar16.zToken) {\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }\n          else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }" if (parenthesized_expression "(uVar9 == (byte)*aVar16.zToken)" ( (binary_expression "uVar9 == (byte)*aVar16.zToken" identifier == (binary_expression "(byte)*aVar16.zToken" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "aVar16.zToken" identifier . field_identifier))) )) (compound_statement "{\n            if (uVar9 == 0) goto code_r0x000632f4;\n          }" { (if_statement "if (uVar9 == 0) goto code_r0x000632f4;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000632f4;" goto statement_identifier ;)) }) (else_clause "else {\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }" else (compound_statement "{\n            iVar6 = 2;\n            if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;\n          }" { (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;) (if_statement "if (aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]) goto LAB_00062fb8;" if (parenthesized_expression "(aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken])" ( (binary_expression "aVar18.zToken[uVar9] != aVar18.zToken[(byte)*aVar16.zToken]" (subscript_expression "aVar18.zToken[uVar9]" (field_expression "aVar18.zToken" identifier . field_identifier) [ identifier ]) != (subscript_expression "aVar18.zToken[(byte)*aVar16.zToken]" (field_expression "aVar18.zToken" identifier . field_identifier) [ (binary_expression "(byte)*aVar16.zToken" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "aVar16.zToken" identifier . field_identifier)) ])) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) }))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "aVar16.zToken = (char *)(aVar16.iValue + 1);" (assignment_expression "aVar16.zToken = (char *)(aVar16.iValue + 1)" (field_expression "aVar16.zToken" identifier . field_identifier) = (cast_expression "(char *)(aVar16.iValue + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar16.iValue + 1)" ( (binary_expression "aVar16.iValue + 1" (field_expression "aVar16.iValue" identifier . field_identifier) + number_literal) )))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (bVar11 == 0x77) goto LAB_00062f88;" if (parenthesized_expression "(bVar11 == 0x77)" ( (binary_expression "bVar11 == 0x77" identifier == number_literal) )) (goto_statement "goto LAB_00062f88;" goto statement_identifier ;)) (expression_statement "aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken;" (assignment_expression "aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 8)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 8)" ( (binary_expression "aVar17.iValue + 8" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) (if_statement "if (bVar11 == 0x6f) {\n        iVar6 = (**(code **)(puVar26 + 0x9254c))();\n        if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(bVar11 == 0x6f)" ( (binary_expression "bVar11 == 0x6f" identifier == number_literal) )) (compound_statement "{\n        iVar6 = (**(code **)(puVar26 + 0x9254c))();\n        if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }\n      }" { (expression_statement "iVar6 = (**(code **)(puVar26 + 0x9254c))();" (assignment_expression "iVar6 = (**(code **)(puVar26 + 0x9254c))()" identifier = (call_expression "(**(code **)(puVar26 + 0x9254c))()" (parenthesized_expression "(**(code **)(puVar26 + 0x9254c))" ( (pointer_expression "**(code **)(puVar26 + 0x9254c)" * (pointer_expression "*(code **)(puVar26 + 0x9254c)" * (cast_expression "(code **)(puVar26 + 0x9254c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x9254c)" ( (binary_expression "puVar26 + 0x9254c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0) {\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar25 = *(uint *)((int)pExpr + 4);\n          uVar5 = *(uint *)(aVar17.iValue + 4);\n          goto LAB_0006305c;\n        }" { (expression_statement "uVar25 = *(uint *)((int)pExpr + 4);" (assignment_expression "uVar25 = *(uint *)((int)pExpr + 4)" identifier = (pointer_expression "*(uint *)((int)pExpr + 4)" * (cast_expression "(uint *)((int)pExpr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 4)" ( (binary_expression "(int)pExpr + 4" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(aVar17.iValue + 4);" (assignment_expression "uVar5 = *(uint *)(aVar17.iValue + 4)" identifier = (pointer_expression "*(uint *)(aVar17.iValue + 4)" * (cast_expression "(uint *)(aVar17.iValue + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 4)" ( (binary_expression "aVar17.iValue + 4" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_0006305c;" goto statement_identifier ;) })) }) (else_clause "else if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" else (if_statement "if (((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)) {\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0))" ( (binary_expression "((byte *)aVar16.zToken == (byte *)0x0) ||\n              (iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)" (parenthesized_expression "((byte *)aVar16.zToken == (byte *)0x0)" ( (binary_expression "(byte *)aVar16.zToken == (byte *)0x0" (cast_expression "(byte *)aVar16.zToken" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.zToken" identifier . field_identifier)) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0)" ( (comma_expression "iVar6 = (**(code **)(puVar26 + 0x926e0))(), iVar6 == 0" (assignment_expression "iVar6 = (**(code **)(puVar26 + 0x926e0))()" identifier = (call_expression "(**(code **)(puVar26 + 0x926e0))()" (parenthesized_expression "(**(code **)(puVar26 + 0x926e0))" ( (pointer_expression "**(code **)(puVar26 + 0x926e0)" * (pointer_expression "*(code **)(puVar26 + 0x926e0)" * (cast_expression "(code **)(puVar26 + 0x926e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x926e0)" ( (binary_expression "puVar26 + 0x926e0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0006305c:\n        if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" statement_identifier : (if_statement "if (((uVar5 ^ uVar25) & 0x202) == 0) {\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((uVar5 ^ uVar25) & 0x202) == 0)" ( (binary_expression "((uVar5 ^ uVar25) & 0x202) == 0" (parenthesized_expression "((uVar5 ^ uVar25) & 0x202)" ( (binary_expression "(uVar5 ^ uVar25) & 0x202" (parenthesized_expression "(uVar5 ^ uVar25)" ( (binary_expression "uVar5 ^ uVar25" identifier ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar6 = 0;\n          if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if ((uVar24 & 0x4000) != 0) goto LAB_00062fb8;" if (parenthesized_expression "((uVar24 & 0x4000) != 0)" ( (binary_expression "(uVar24 & 0x4000) != 0" (parenthesized_expression "(uVar24 & 0x4000)" ( (binary_expression "uVar24 & 0x4000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if ((uVar24 & 0x800) == 0) {\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }" if (parenthesized_expression "((uVar24 & 0x800) == 0)" ( (binary_expression "(uVar24 & 0x800) == 0" (parenthesized_expression "(uVar24 & 0x800)" ( (binary_expression "uVar24 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;\n            iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);\n            if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }" { (if_statement "if ((uVar24 & 8) == 0) {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }\n            else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }" if (parenthesized_expression "((uVar24 & 8) == 0)" ( (binary_expression "(uVar24 & 8) == 0" (parenthesized_expression "(uVar24 & 8)" ( (binary_expression "uVar24 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n              iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);\n              if (iVar6 != 0) goto LAB_00062fb4;\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }" { (expression_statement "aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;" (assignment_expression "aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue" (call_expression "(anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 0xc)" ( (binary_expression "aVar17.iValue + 0xc" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;" (assignment_expression "aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 0xc)" ( (binary_expression "(int)pExpr + 0xc" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue);" (assignment_expression "iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue)" identifier = (call_expression "sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue)" identifier (argument_list "(pParse,(Expr *)aVar16.zToken,(Expr *)aVar18.zToken,\n                                         aVar20.iValue)" ( identifier , (cast_expression "(Expr *)aVar16.zToken" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.zToken" identifier . field_identifier)) , (cast_expression "(Expr *)aVar18.zToken" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar18.zToken" identifier . field_identifier)) , (field_expression "aVar20.iValue" identifier . field_identifier) )))) ;) (if_statement "if (iVar6 != 0) goto LAB_00062fb4;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (expression_statement "aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;" (assignment_expression "aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 0x10)" ( (binary_expression "aVar17.iValue + 0x10" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) }) (else_clause "else {\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }" else (compound_statement "{\n              aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;\n            }" { (expression_statement "aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken;" (assignment_expression "aVar18 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x10)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 0x10)" ( (binary_expression "aVar17.iValue + 0x10" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) }))) (expression_statement "aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken;" (assignment_expression "aVar16 = (anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n                     ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x10)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 0x10)" ( (binary_expression "(int)pExpr + 0x10" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue);" (assignment_expression "iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue)" identifier = (call_expression "sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue)" identifier (argument_list "(pParse,(Expr *)aVar16.zToken,aVar18.iValue,aVar20.iValue)" ( identifier , (cast_expression "(Expr *)aVar16.zToken" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.zToken" identifier . field_identifier)) , (field_expression "aVar18.iValue" identifier . field_identifier) , (field_expression "aVar20.iValue" identifier . field_identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;\n              aVar18 = aVar20;\n              iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);\n              if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }" { (expression_statement "aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken;" (assignment_expression "aVar16 = (anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n                       ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x14)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 0x14)" ( (binary_expression "aVar17.iValue + 0x14" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "aVar18 = aVar20;" (assignment_expression "aVar18 = aVar20" identifier = identifier) ;) (expression_statement "iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue);" (assignment_expression "iVar6 = sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue)" identifier = (call_expression "sqlite3ExprListCompare\n                                (*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue)" identifier (argument_list "(*(ExprList **)((int)pExpr + 0x14),(ExprList *)aVar16.zToken,\n                                 aVar20.iValue)" ( (pointer_expression "*(ExprList **)((int)pExpr + 0x14)" * (cast_expression "(ExprList **)((int)pExpr + 0x14)" ( (type_descriptor "ExprList **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pExpr + 0x14)" ( (binary_expression "(int)pExpr + 0x14" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (cast_expression "(ExprList *)aVar16.zToken" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.zToken" identifier . field_identifier)) , (field_expression "aVar20.iValue" identifier . field_identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                cVar3 = *(char *)pExpr;\n                if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }\n              }" { (expression_statement "cVar3 = *(char *)pExpr;" (assignment_expression "cVar3 = *(char *)pExpr" identifier = (pointer_expression "*(char *)pExpr" * (cast_expression "(char *)pExpr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)) {\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }" if (parenthesized_expression "(((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0))" ( (binary_expression "((cVar3 == 's') || (cVar3 == -0x59)) || ((uVar24 & 0x2000) != 0)" (parenthesized_expression "((cVar3 == 's') || (cVar3 == -0x59))" ( (binary_expression "(cVar3 == 's') || (cVar3 == -0x59)" (parenthesized_expression "(cVar3 == 's')" ( (binary_expression "cVar3 == 's'" identifier == (char_literal "'s'" ' character ')) )) || (parenthesized_expression "(cVar3 == -0x59)" ( (binary_expression "cVar3 == -0x59" identifier == number_literal) ))) )) || (parenthesized_expression "((uVar24 & 0x2000) != 0)" ( (binary_expression "(uVar24 & 0x2000) != 0" (parenthesized_expression "(uVar24 & 0x2000)" ( (binary_expression "uVar24 & 0x2000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_00062f88:\n                  iVar6 = 0;\n                  goto LAB_00062fb8;\n                }" { (labeled_statement "LAB_00062f88:\n                  iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;) })) (if_statement "if ((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   ) {\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }" if (parenthesized_expression "((*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))\n                   )" ( (binary_expression "(*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&\n                   ((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))" (parenthesized_expression "(*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20))" ( (binary_expression "*(short *)((int)pExpr + 0x20) == *(short *)(aVar17.iValue + 0x20)" (pointer_expression "*(short *)((int)pExpr + 0x20)" * (cast_expression "(short *)((int)pExpr + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 0x20)" ( (binary_expression "(int)pExpr + 0x20" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (pointer_expression "*(short *)(aVar17.iValue + 0x20)" * (cast_expression "(short *)(aVar17.iValue + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 0x20)" ( (binary_expression "aVar17.iValue + 0x20" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))))) )) && (parenthesized_expression "((*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)))" ( (parenthesized_expression "(*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54))" ( (binary_expression "*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2) || (cVar3 != -0x54)" (binary_expression "*(char *)((int)pExpr + 2) == *(char *)(aVar17.iValue + 2)" (pointer_expression "*(char *)((int)pExpr + 2)" * (cast_expression "(char *)((int)pExpr + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 2)" ( (binary_expression "(int)pExpr + 2" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (pointer_expression "*(char *)(aVar17.iValue + 2)" * (cast_expression "(char *)(aVar17.iValue + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 2)" ( (binary_expression "aVar17.iValue + 2" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))))) || (parenthesized_expression "(cVar3 != -0x54)" ( (binary_expression "cVar3 != -0x54" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n                  iVar6 = 0;\n                  if (cVar3 == '1') goto LAB_00062fb8;\n                  if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;\n                  iVar6 = 0;\n                  if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;\n                }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (cVar3 == '1') goto LAB_00062fb8;" if (parenthesized_expression "(cVar3 == '1')" ( (binary_expression "cVar3 == '1'" identifier == (char_literal "'1'" ' character ')) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if (*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))\n                  goto LAB_00062f88;" if (parenthesized_expression "(*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c))" ( (binary_expression "*(byte **)((int)pExpr + 0x1c) == *(byte **)(aVar17.iValue + 0x1c)" (pointer_expression "*(byte **)((int)pExpr + 0x1c)" * (cast_expression "(byte **)((int)pExpr + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pExpr + 0x1c)" ( (binary_expression "(int)pExpr + 0x1c" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (pointer_expression "*(byte **)(aVar17.iValue + 0x1c)" * (cast_expression "(byte **)(aVar17.iValue + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar17.iValue + 0x1c)" ( (binary_expression "aVar17.iValue + 0x1c" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))))) )) (goto_statement "goto LAB_00062f88;" goto statement_identifier ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if ((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)) goto LAB_00062fb8;" if (parenthesized_expression "((byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c))" ( (binary_expression "(byte *)aVar20.zToken == *(byte **)((int)pExpr + 0x1c)" (cast_expression "(byte *)aVar20.zToken" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar20.zToken" identifier . field_identifier)) == (pointer_expression "*(byte **)((int)pExpr + 0x1c)" * (cast_expression "(byte **)((int)pExpr + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pExpr + 0x1c)" ( (binary_expression "(int)pExpr + 0x1c" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) })) })) })) })) }))) })))) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;) })) (if_statement "if (bVar11 == 0x6f) {\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n      aVar18 = aVar17;\n      iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue);\n      if (1 < iVar6) {\n        bVar13 = *aVar17.zToken;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      iVar6 = 1;\n      goto LAB_00062fb8;\n    }" if (parenthesized_expression "(bVar11 == 0x6f)" ( (binary_expression "bVar11 == 0x6f" identifier == number_literal) )) (compound_statement "{\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;\n      aVar18 = aVar17;\n      iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue);\n      if (1 < iVar6) {\n        bVar13 = *aVar17.zToken;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      iVar6 = 1;\n      goto LAB_00062fb8;\n    }" { (expression_statement "aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken;" (assignment_expression "aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0xc)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 0xc)" ( (binary_expression "(int)pExpr + 0xc" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "aVar18 = aVar17;" (assignment_expression "aVar18 = aVar17" identifier = identifier) ;) (expression_statement "iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue);" (assignment_expression "iVar6 = sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue)" identifier = (call_expression "sqlite3ExprCompare(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue)" identifier (argument_list "(pParse,(Expr *)aVar16.zToken,aVar17.iValue,aVar20.iValue)" ( identifier , (cast_expression "(Expr *)aVar16.zToken" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.zToken" identifier . field_identifier)) , (field_expression "aVar17.iValue" identifier . field_identifier) , (field_expression "aVar20.iValue" identifier . field_identifier) )))) ;) (if_statement "if (1 < iVar6) {\n        bVar13 = *aVar17.zToken;\n        goto LAB_00062fa8;\n      }" if (parenthesized_expression "(1 < iVar6)" ( (binary_expression "1 < iVar6" number_literal < identifier) )) (compound_statement "{\n        bVar13 = *aVar17.zToken;\n        goto LAB_00062fa8;\n      }" { (expression_statement "bVar13 = *aVar17.zToken;" (assignment_expression "bVar13 = *aVar17.zToken" identifier = (pointer_expression "*aVar17.zToken" * (field_expression "aVar17.zToken" identifier . field_identifier))) ;) (goto_statement "goto LAB_00062fa8;" goto statement_identifier ;) })) (labeled_statement "LAB_0006323c:\n      iVar6 = 1;" statement_identifier : (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;) })) (labeled_statement "LAB_00062fa8:\n    if (bVar13 == 0x6f) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n      iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);\n      aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      if (iVar6 < 2) goto LAB_0006323c;\n    }" statement_identifier : (if_statement "if (bVar13 == 0x6f) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n      iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);\n      aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      if (iVar6 < 2) goto LAB_0006323c;\n    }" if (parenthesized_expression "(bVar13 == 0x6f)" ( (binary_expression "bVar13 == 0x6f" identifier == number_literal) )) (compound_statement "{\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;\n      iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);\n      aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;\n      if (iVar6 < 2) goto LAB_0006323c;\n    }" { (expression_statement "aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue;" (assignment_expression "aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))->iValue" (call_expression "(anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0xc)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 0xc)" ( (binary_expression "aVar17.iValue + 0xc" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue);" (assignment_expression "iVar6 = sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue)" identifier = (call_expression "sqlite3ExprCompare(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue)" identifier (argument_list "(pParse,pExpr,(Expr *)aVar18.zToken,aVar20.iValue)" ( identifier , identifier , (cast_expression "(Expr *)aVar18.zToken" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar18.zToken" identifier . field_identifier)) , (field_expression "aVar20.iValue" identifier . field_identifier) )))) ;) (expression_statement "aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr;" (assignment_expression "aVar16 = (anon_union_4_2_443a03b8_for_u)pExpr" identifier = (cast_expression "(anon_union_4_2_443a03b8_for_u)pExpr" ( (type_descriptor "anon_union_4_2_443a03b8_for_u" type_identifier) ) identifier)) ;) (if_statement "if (iVar6 < 2) goto LAB_0006323c;" if (parenthesized_expression "(iVar6 < 2)" ( (binary_expression "iVar6 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0006323c;" goto statement_identifier ;)) }))) }))) (labeled_statement "LAB_00062fb4:\n  iVar6 = 2;" statement_identifier : (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;)) (labeled_statement "LAB_00062fb8:\n  if (piStack_84 == (int *)*puVar21) {\n    return iVar6;\n  }" statement_identifier : (if_statement "if (piStack_84 == (int *)*puVar21) {\n    return iVar6;\n  }" if (parenthesized_expression "(piStack_84 == (int *)*puVar21)" ( (binary_expression "piStack_84 == (int *)*puVar21" identifier == (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) }))) (expression_statement "piVar15 = piStack_84;" (assignment_expression "piVar15 = piStack_84" identifier = identifier) ;) (expression_statement "(**(code **)(puVar26 + 0x92668))();" (call_expression "(**(code **)(puVar26 + 0x92668))()" (parenthesized_expression "(**(code **)(puVar26 + 0x92668))" ( (pointer_expression "**(code **)(puVar26 + 0x92668)" * (pointer_expression "*(code **)(puVar26 + 0x92668)" * (cast_expression "(code **)(puVar26 + 0x92668)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x92668)" ( (binary_expression "puVar26 + 0x92668" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (piVar15 == (int *)0x0) {\n    return (uint)((byte *)aVar16.zToken != (byte *)0x0);\n  }" if (parenthesized_expression "(piVar15 == (int *)0x0)" ( (binary_expression "piVar15 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (uint)((byte *)aVar16.zToken != (byte *)0x0);\n  }" { (return_statement "return (uint)((byte *)aVar16.zToken != (byte *)0x0);" return (call_expression "(uint)((byte *)aVar16.zToken != (byte *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte *)aVar16.zToken != (byte *)0x0)" ( (binary_expression "(byte *)aVar16.zToken != (byte *)0x0" (cast_expression "(byte *)aVar16.zToken" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.zToken" identifier . field_identifier)) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ;) })) comment (if_statement "if (((byte *)aVar16.zToken == (byte *)0x0) || (*piVar15 != *aVar16.iValue)) {\n    return 1;\n  }" if (parenthesized_expression "(((byte *)aVar16.zToken == (byte *)0x0) || (*piVar15 != *aVar16.iValue))" ( (binary_expression "((byte *)aVar16.zToken == (byte *)0x0) || (*piVar15 != *aVar16.iValue)" (parenthesized_expression "((byte *)aVar16.zToken == (byte *)0x0)" ( (binary_expression "(byte *)aVar16.zToken == (byte *)0x0" (cast_expression "(byte *)aVar16.zToken" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.zToken" identifier . field_identifier)) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*piVar15 != *aVar16.iValue)" ( (binary_expression "*piVar15 != *aVar16.iValue" (pointer_expression "*piVar15" * identifier) != (pointer_expression "*aVar16.iValue" * (field_expression "aVar16.iValue" identifier . field_identifier))) ))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*piVar15 < 1) {\n    return 0;\n  }" if (parenthesized_expression "(*piVar15 < 1)" ( (binary_expression "*piVar15 < 1" (pointer_expression "*piVar15" * identifier) < number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pA = (Expr *)piVar15[1];" (assignment_expression "pA = (Expr *)piVar15[1]" identifier = (cast_expression "(Expr *)piVar15[1]" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar15[1]" identifier [ number_literal ]))) ;) (expression_statement "pB = *(Expr **)(aVar16.iValue + 4);" (assignment_expression "pB = *(Expr **)(aVar16.iValue + 4)" identifier = (pointer_expression "*(Expr **)(aVar16.iValue + 4)" * (cast_expression "(Expr **)(aVar16.iValue + 4)" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar16.iValue + 4)" ( (binary_expression "aVar16.iValue + 4" (field_expression "aVar16.iValue" identifier . field_identifier) + number_literal) ))))) ;) (if_statement "if (*(byte *)(piVar15 + 3) == *(byte *)(aVar16.iValue + 0xc)) {\n    iVar6 = 0;\n    pbVar14 = (byte *)(aVar16.iValue + 0x14);\n    piVar22 = piVar15 + 5;\n    do {\n      iVar10 = sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue);\n      iVar6 = iVar6 + 1;\n      if (iVar10 != 0) {\n        return iVar10;\n      }\n      if (*piVar15 <= iVar6) {\n        return 0;\n      }\n      pbVar1 = (byte *)(piVar22 + 2);\n      pbVar2 = pbVar14 + 8;\n      pA = (Expr *)*piVar22;\n      pB = *(Expr **)pbVar14;\n      pbVar14 = pbVar14 + 0x10;\n      piVar22 = piVar22 + 4;\n    } while (*pbVar1 == *pbVar2);\n  }" if (parenthesized_expression "(*(byte *)(piVar15 + 3) == *(byte *)(aVar16.iValue + 0xc))" ( (binary_expression "*(byte *)(piVar15 + 3) == *(byte *)(aVar16.iValue + 0xc)" (pointer_expression "*(byte *)(piVar15 + 3)" * (cast_expression "(byte *)(piVar15 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar15 + 3)" ( (binary_expression "piVar15 + 3" identifier + number_literal) )))) == (pointer_expression "*(byte *)(aVar16.iValue + 0xc)" * (cast_expression "(byte *)(aVar16.iValue + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar16.iValue + 0xc)" ( (binary_expression "aVar16.iValue + 0xc" (field_expression "aVar16.iValue" identifier . field_identifier) + number_literal) ))))) )) (compound_statement "{\n    iVar6 = 0;\n    pbVar14 = (byte *)(aVar16.iValue + 0x14);\n    piVar22 = piVar15 + 5;\n    do {\n      iVar10 = sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue);\n      iVar6 = iVar6 + 1;\n      if (iVar10 != 0) {\n        return iVar10;\n      }\n      if (*piVar15 <= iVar6) {\n        return 0;\n      }\n      pbVar1 = (byte *)(piVar22 + 2);\n      pbVar2 = pbVar14 + 8;\n      pA = (Expr *)*piVar22;\n      pB = *(Expr **)pbVar14;\n      pbVar14 = pbVar14 + 0x10;\n      piVar22 = piVar22 + 4;\n    } while (*pbVar1 == *pbVar2);\n  }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)(aVar16.iValue + 0x14);" (assignment_expression "pbVar14 = (byte *)(aVar16.iValue + 0x14)" identifier = (cast_expression "(byte *)(aVar16.iValue + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar16.iValue + 0x14)" ( (binary_expression "aVar16.iValue + 0x14" (field_expression "aVar16.iValue" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "piVar22 = piVar15 + 5;" (assignment_expression "piVar22 = piVar15 + 5" identifier = (binary_expression "piVar15 + 5" identifier + number_literal)) ;) (do_statement "do {\n      iVar10 = sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue);\n      iVar6 = iVar6 + 1;\n      if (iVar10 != 0) {\n        return iVar10;\n      }\n      if (*piVar15 <= iVar6) {\n        return 0;\n      }\n      pbVar1 = (byte *)(piVar22 + 2);\n      pbVar2 = pbVar14 + 8;\n      pA = (Expr *)*piVar22;\n      pB = *(Expr **)pbVar14;\n      pbVar14 = pbVar14 + 0x10;\n      piVar22 = piVar22 + 4;\n    } while (*pbVar1 == *pbVar2);" do (compound_statement "{\n      iVar10 = sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue);\n      iVar6 = iVar6 + 1;\n      if (iVar10 != 0) {\n        return iVar10;\n      }\n      if (*piVar15 <= iVar6) {\n        return 0;\n      }\n      pbVar1 = (byte *)(piVar22 + 2);\n      pbVar2 = pbVar14 + 8;\n      pA = (Expr *)*piVar22;\n      pB = *(Expr **)pbVar14;\n      pbVar14 = pbVar14 + 0x10;\n      piVar22 = piVar22 + 4;\n    }" { (expression_statement "iVar10 = sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue);" (assignment_expression "iVar10 = sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue)" identifier = (call_expression "sqlite3ExprCompare((Parse *)0x0,pA,pB,aVar18.iValue)" identifier (argument_list "((Parse *)0x0,pA,pB,aVar18.iValue)" ( (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , (field_expression "aVar18.iValue" identifier . field_identifier) )))) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (if_statement "if (iVar10 != 0) {\n        return iVar10;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        return iVar10;\n      }" { (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*piVar15 <= iVar6) {\n        return 0;\n      }" if (parenthesized_expression "(*piVar15 <= iVar6)" ( (binary_expression "*piVar15 <= iVar6" (pointer_expression "*piVar15" * identifier) <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar1 = (byte *)(piVar22 + 2);" (assignment_expression "pbVar1 = (byte *)(piVar22 + 2)" identifier = (cast_expression "(byte *)(piVar22 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 2)" ( (binary_expression "piVar22 + 2" identifier + number_literal) )))) ;) (expression_statement "pbVar2 = pbVar14 + 8;" (assignment_expression "pbVar2 = pbVar14 + 8" identifier = (binary_expression "pbVar14 + 8" identifier + number_literal)) ;) (expression_statement "pA = (Expr *)*piVar22;" (assignment_expression "pA = (Expr *)*piVar22" identifier = (cast_expression "(Expr *)*piVar22" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar22" * identifier))) ;) (expression_statement "pB = *(Expr **)pbVar14;" (assignment_expression "pB = *(Expr **)pbVar14" identifier = (pointer_expression "*(Expr **)pbVar14" * (cast_expression "(Expr **)pbVar14" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar14 = pbVar14 + 0x10;" (assignment_expression "pbVar14 = pbVar14 + 0x10" identifier = (binary_expression "pbVar14 + 0x10" identifier + number_literal)) ;) (expression_statement "piVar22 = piVar22 + 4;" (assignment_expression "piVar22 = piVar22 + 4" identifier = (binary_expression "piVar22 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pbVar1 == *pbVar2)" ( (binary_expression "*pbVar1 == *pbVar2" (pointer_expression "*pbVar1" * identifier) == (pointer_expression "*pbVar2" * identifier)) )) ;) })) (return_statement "return 1;" return number_literal ;) (labeled_statement "code_r0x000632f4:\n  if ((uint)((uVar25 & 0x1000000) != 0) == (uVar5 << 7) >> 0x1f) {\n    if ((uVar25 & 0x1000000) != 0) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken;\n      iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1);\n      if (iVar6 != 0) goto LAB_00062fb4;\n      uVar25 = *(uint *)((int)pExpr + 4);\n      uVar5 = *(uint *)(aVar17.iValue + 4);\n    }\n    goto LAB_0006305c;\n  }" statement_identifier : (if_statement "if ((uint)((uVar25 & 0x1000000) != 0) == (uVar5 << 7) >> 0x1f) {\n    if ((uVar25 & 0x1000000) != 0) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken;\n      iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1);\n      if (iVar6 != 0) goto LAB_00062fb4;\n      uVar25 = *(uint *)((int)pExpr + 4);\n      uVar5 = *(uint *)(aVar17.iValue + 4);\n    }\n    goto LAB_0006305c;\n  }" if (parenthesized_expression "((uint)((uVar25 & 0x1000000) != 0) == (uVar5 << 7) >> 0x1f)" ( (binary_expression "(uint)((uVar25 & 0x1000000) != 0) == (uVar5 << 7) >> 0x1f" (call_expression "(uint)((uVar25 & 0x1000000) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar25 & 0x1000000) != 0)" ( (binary_expression "(uVar25 & 0x1000000) != 0" (parenthesized_expression "(uVar25 & 0x1000000)" ( (binary_expression "uVar25 & 0x1000000" identifier & number_literal) )) != number_literal) ))) == (binary_expression "(uVar5 << 7) >> 0x1f" (parenthesized_expression "(uVar5 << 7)" ( (binary_expression "uVar5 << 7" identifier << number_literal) )) >> number_literal)) )) (compound_statement "{\n    if ((uVar25 & 0x1000000) != 0) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken;\n      iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1);\n      if (iVar6 != 0) goto LAB_00062fb4;\n      uVar25 = *(uint *)((int)pExpr + 4);\n      uVar5 = *(uint *)(aVar17.iValue + 4);\n    }\n    goto LAB_0006305c;\n  }" { (if_statement "if ((uVar25 & 0x1000000) != 0) {\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken;\n      iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1);\n      if (iVar6 != 0) goto LAB_00062fb4;\n      uVar25 = *(uint *)((int)pExpr + 4);\n      uVar5 = *(uint *)(aVar17.iValue + 4);\n    }" if (parenthesized_expression "((uVar25 & 0x1000000) != 0)" ( (binary_expression "(uVar25 & 0x1000000) != 0" (parenthesized_expression "(uVar25 & 0x1000000)" ( (binary_expression "uVar25 & 0x1000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue;\n      aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken;\n      iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1);\n      if (iVar6 != 0) goto LAB_00062fb4;\n      uVar25 = *(uint *)((int)pExpr + 4);\n      uVar5 = *(uint *)(aVar17.iValue + 4);\n    }" { (expression_statement "aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue;" (assignment_expression "aVar18 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))->iValue" (call_expression "(anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)(aVar17.iValue + 0x2c)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 0x2c)" ( (binary_expression "aVar17.iValue + 0x2c" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken;" (assignment_expression "aVar16 = (anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken" identifier = (field_expression "(anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))->zToken" (call_expression "(anon_union_4_2_443a03b8_for_u)\n               ((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))" (parenthesized_expression "(anon_union_4_2_443a03b8_for_u)" ( identifier )) (argument_list "((anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c))" ( (cast_expression "(anon_union_4_2_443a03b8_for_u *)((int)pExpr + 0x2c)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 0x2c)" ( (binary_expression "(int)pExpr + 0x2c" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1);" (assignment_expression "iVar6 = sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1)" identifier = (call_expression "sqlite3WindowCompare(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1)" identifier (argument_list "(pParse,(Window *)aVar16.zToken,(Window *)aVar18.zToken,1)" ( identifier , (cast_expression "(Window *)aVar16.zToken" ( (type_descriptor "Window *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.zToken" identifier . field_identifier)) , (cast_expression "(Window *)aVar18.zToken" ( (type_descriptor "Window *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar18.zToken" identifier . field_identifier)) , number_literal )))) ;) (if_statement "if (iVar6 != 0) goto LAB_00062fb4;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (expression_statement "uVar25 = *(uint *)((int)pExpr + 4);" (assignment_expression "uVar25 = *(uint *)((int)pExpr + 4)" identifier = (pointer_expression "*(uint *)((int)pExpr + 4)" * (cast_expression "(uint *)((int)pExpr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pExpr + 4)" ( (binary_expression "(int)pExpr + 4" (cast_expression "(int)pExpr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(aVar17.iValue + 4);" (assignment_expression "uVar5 = *(uint *)(aVar17.iValue + 4)" identifier = (pointer_expression "*(uint *)(aVar17.iValue + 4)" * (cast_expression "(uint *)(aVar17.iValue + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar17.iValue + 4)" ( (binary_expression "aVar17.iValue + 4" (field_expression "aVar17.iValue" identifier . field_identifier) + number_literal) ))))) ;) })) (goto_statement "goto LAB_0006305c;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;) })))
(translation_unit "uint FUN_0006290c(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  byte bVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  byte *pbVar15;\n  undefined4 *puVar16;\n  int *piVar17;\n  uint uVar18;\n  char cVar20;\n  int iVar19;\n  byte *pbVar21;\n  byte *unaff_s6;\n  uint uVar22;\n  int iVar23;\n  int unaff_s7;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  byte *pbStack_88;\n  int *piStack_84;\n  uint uStack_7c;\n  byte *pbStack_78;\n  undefined *puStack_74;\n  uint **ppuStack_70;\n  byte *pbStack_6c;\n  byte *pbStack_68;\n  byte *pbStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uint **local_48;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000f5568;\n  local_30 = (uint *)0x0;\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }\n  if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }\n  cVar20 = (char)param_4;\n  if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }\nLAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar26 = FUN_00062ed8;\n  puVar7 = local_2c;\n  puVar25 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar16 = *(undefined4 **)(puVar25 + 0x92690);\n  puStack_74 = puVar1;\n  ppuStack_70 = param_5;\n  piStack_84 = (int *)*puVar16;\n  pbVar9 = param_2;\n  pbVar11 = pbVar10;\n  uStack_7c = uVar2;\n  pbStack_78 = pbVar15;\n  pbStack_6c = param_4;\n  pbStack_68 = pbVar21;\n  pbStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar26;\n  if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  uVar2 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x92668);\n  piVar8 = piStack_84;\n  (*pcVar26)();\n  pcVar26 = pcVar26 + 0x99ef4;\n  if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }\n  if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }\n  if (*piVar8 < 1) {\n    return 0;\n  }\n  iVar3 = piVar8[1];\n  uVar12 = *(undefined4 *)(pbVar9 + 4);\n  if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}\n\n" (function_definition "uint FUN_0006290c(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  byte bVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  byte *pbVar15;\n  undefined4 *puVar16;\n  int *piVar17;\n  uint uVar18;\n  char cVar20;\n  int iVar19;\n  byte *pbVar21;\n  byte *unaff_s6;\n  uint uVar22;\n  int iVar23;\n  int unaff_s7;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  byte *pbStack_88;\n  int *piStack_84;\n  uint uStack_7c;\n  byte *pbStack_78;\n  undefined *puStack_74;\n  uint **ppuStack_70;\n  byte *pbStack_6c;\n  byte *pbStack_68;\n  byte *pbStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uint **local_48;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000f5568;\n  local_30 = (uint *)0x0;\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }\n  if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }\n  cVar20 = (char)param_4;\n  if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }\nLAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar26 = FUN_00062ed8;\n  puVar7 = local_2c;\n  puVar25 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar16 = *(undefined4 **)(puVar25 + 0x92690);\n  puStack_74 = puVar1;\n  ppuStack_70 = param_5;\n  piStack_84 = (int *)*puVar16;\n  pbVar9 = param_2;\n  pbVar11 = pbVar10;\n  uStack_7c = uVar2;\n  pbStack_78 = pbVar15;\n  pbStack_6c = param_4;\n  pbStack_68 = pbVar21;\n  pbStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar26;\n  if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  uVar2 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x92668);\n  piVar8 = piStack_84;\n  (*pcVar26)();\n  pcVar26 = pcVar26 + 0x99ef4;\n  if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }\n  if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }\n  if (*piVar8 < 1) {\n    return 0;\n  }\n  iVar3 = piVar8[1];\n  uVar12 = *(undefined4 *)(pbVar9 + 4);\n  if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}" type_identifier (function_declarator "FUN_0006290c(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)" identifier (parameter_list "(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint **param_5" type_identifier (pointer_declarator "**param_5" * (pointer_declarator "*param_5" * identifier))) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  byte bVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  byte *pbVar15;\n  undefined4 *puVar16;\n  int *piVar17;\n  uint uVar18;\n  char cVar20;\n  int iVar19;\n  byte *pbVar21;\n  byte *unaff_s6;\n  uint uVar22;\n  int iVar23;\n  int unaff_s7;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  byte *pbStack_88;\n  int *piStack_84;\n  uint uStack_7c;\n  byte *pbStack_78;\n  undefined *puStack_74;\n  uint **ppuStack_70;\n  byte *pbStack_6c;\n  byte *pbStack_68;\n  byte *pbStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uint **local_48;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000f5568;\n  local_30 = (uint *)0x0;\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }\n  if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }\n  cVar20 = (char)param_4;\n  if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }\nLAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar26 = FUN_00062ed8;\n  puVar7 = local_2c;\n  puVar25 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar16 = *(undefined4 **)(puVar25 + 0x92690);\n  puStack_74 = puVar1;\n  ppuStack_70 = param_5;\n  piStack_84 = (int *)*puVar16;\n  pbVar9 = param_2;\n  pbVar11 = pbVar10;\n  uStack_7c = uVar2;\n  pbStack_78 = pbVar15;\n  pbStack_6c = param_4;\n  pbStack_68 = pbVar21;\n  pbStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar26;\n  if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  uVar2 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x92668);\n  piVar8 = piStack_84;\n  (*pcVar26)();\n  pcVar26 = pcVar26 + 0x99ef4;\n  if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }\n  if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }\n  if (*piVar8 < 1) {\n    return 0;\n  }\n  iVar3 = piVar8[1];\n  uVar12 = *(undefined4 *)(pbVar9 + 4);\n  if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "char cVar20;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int unaff_s7;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "byte *pbStack_88;" type_identifier (pointer_declarator "*pbStack_88" * identifier) ;) (declaration "int *piStack_84;" primitive_type (pointer_declarator "*piStack_84" * identifier) ;) (declaration "uint uStack_7c;" type_identifier identifier ;) (declaration "byte *pbStack_78;" type_identifier (pointer_declarator "*pbStack_78" * identifier) ;) (declaration "undefined *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "uint **ppuStack_70;" type_identifier (pointer_declarator "**ppuStack_70" * (pointer_declarator "*ppuStack_70" * identifier)) ;) (declaration "byte *pbStack_6c;" type_identifier (pointer_declarator "*pbStack_6c" * identifier) ;) (declaration "byte *pbStack_68;" type_identifier (pointer_declarator "*pbStack_68" * identifier) ;) (declaration "byte *pbStack_64;" type_identifier (pointer_declarator "*pbStack_64" * identifier) ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "uint **local_48;" type_identifier (pointer_declarator "**local_48" * (pointer_declarator "*local_48" * identifier)) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_2c = *(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))) ;) (for_statement "for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }" for ( (assignment_expression "pbVar15 = param_2" identifier = identifier) ; (parenthesized_expression "(bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2))" ( (comma_expression "bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2)" (assignment_expression "bVar14 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) , (binary_expression "bVar14 == 0xab || (bVar14 == 0xb2)" (binary_expression "bVar14 == 0xab" identifier == number_literal) || (parenthesized_expression "(bVar14 == 0xb2)" ( (binary_expression "bVar14 == 0xb2" identifier == number_literal) )))) )) ; (assignment_expression "pbVar15 = *(byte **)(pbVar15 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar15 + 0xc)" * (cast_expression "(byte **)(pbVar15 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar15 + 0xc)" ( (binary_expression "pbVar15 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n  }" { })) (if_statement "if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }" if (parenthesized_expression "(bVar14 == 0xad)" ( (binary_expression "bVar14 == 0xad" identifier == number_literal) )) (compound_statement "{\n    bVar14 = pbVar15[2];\n  }" { (expression_statement "bVar14 = pbVar15[2];" (assignment_expression "bVar14 = pbVar15[2]" identifier = (subscript_expression "pbVar15[2]" identifier [ number_literal ])) ;) })) (expression_statement "cVar20 = (char)param_4;" (assignment_expression "cVar20 = (char)param_4" identifier = (cast_expression "(char)param_4" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }" if (parenthesized_expression "(bVar14 == 0x24)" ( (binary_expression "bVar14 == 0x24" identifier == number_literal) )) (compound_statement "{\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }" { (expression_statement "uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);" (assignment_expression "uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x4c38))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x4c38)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x4c38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + 0x4c38)" ( (binary_expression "PTR_LAB_000f52c8 + 0x4c38" identifier + number_literal) )))) )) (argument_list "(*(undefined4 *)(pbVar15 + 8),0)" ( (pointer_expression "*(undefined4 *)(pbVar15 + 8)" * (cast_expression "(undefined4 *)(pbVar15 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15 + 8)" ( (binary_expression "pbVar15 + 8" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "pbVar21 = (byte *)(uVar2 & 0xff);" (assignment_expression "pbVar21 = (byte *)(uVar2 & 0xff)" identifier = (cast_expression "(byte *)(uVar2 & 0xff)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )))) ;) (expression_statement "param_2 = *(byte **)(pbVar15 + 0xc);" (assignment_expression "param_2 = *(byte **)(pbVar15 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar15 + 0xc)" * (cast_expression "(byte **)(pbVar15 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar15 + 0xc)" ( (binary_expression "pbVar15 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_48 = param_5;" (assignment_expression "local_48 = param_5" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar21;" (assignment_expression "pbVar13 = pbVar21" identifier = identifier) ;) (expression_statement "uVar2 = FUN_0006290c(param_1);" (assignment_expression "uVar2 = FUN_0006290c(param_1)" identifier = (call_expression "FUN_0006290c(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pbVar10 = param_3;" (assignment_expression "pbVar10 = param_3" identifier = identifier) ;) (if_statement "if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }" if (parenthesized_expression "(*param_5 != (uint *)0x0)" ( (binary_expression "*param_5 != (uint *)0x0" (pointer_expression "*param_5" * identifier) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }" { (expression_statement "FUN_0005095c(*param_5,pbVar21,1);" (call_expression "FUN_0005095c(*param_5,pbVar21,1)" identifier (argument_list "(*param_5,pbVar21,1)" ( (pointer_expression "*param_5" * identifier) , identifier , number_literal ))) ;) (expression_statement "pbVar10 = (byte *)0x1;" (assignment_expression "pbVar10 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (byte *)(int)cVar20;" (assignment_expression "param_2 = (byte *)(int)cVar20" identifier = (cast_expression "(byte *)(int)cVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_000519d4(*param_5);" (call_expression "FUN_000519d4(*param_5)" identifier (argument_list "(*param_5)" ( (pointer_expression "*param_5" * identifier) ))) ;) })) }) (else_clause "else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }" else (compound_statement "{\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }" { (expression_statement "pbVar10 = param_3;" (assignment_expression "pbVar10 = param_3" identifier = identifier) ;) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" identifier = identifier) ;) (expression_statement "pbVar21 = param_3;" (assignment_expression "pbVar21 = param_3" identifier = identifier) ;) (if_statement "if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }" if (parenthesized_expression "(bVar14 == 0xaa)" ( (binary_expression "bVar14 == 0xaa" identifier == number_literal) )) (compound_statement "{\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }" { (expression_statement "pbVar15 = *(byte **)(pbVar15 + 0xc);" (assignment_expression "pbVar15 = *(byte **)(pbVar15 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar15 + 0xc)" * (cast_expression "(byte **)(pbVar15 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar15 + 0xc)" ( (binary_expression "pbVar15 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar14 = *pbVar15;" (assignment_expression "bVar14 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (if_statement "if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }" if (parenthesized_expression "((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96))" ( (binary_expression "(bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)" (parenthesized_expression "(bVar14 == 0x98)" ( (binary_expression "bVar14 == 0x98" identifier == number_literal) )) || (parenthesized_expression "(unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)" ( (comma_expression "unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96" (assignment_expression "unaff_s6 = PTR_LAB_000f52cc" identifier = identifier) , (binary_expression "bVar14 == 0x96" identifier == number_literal)) ))) )) (compound_statement "{\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }" { (expression_statement "unaff_s7 = -1;" (assignment_expression "unaff_s7 = -1" identifier = number_literal) ;) (expression_statement "unaff_s6 = PTR_LAB_000f52cc + 0x74bc;" (assignment_expression "unaff_s6 = PTR_LAB_000f52cc + 0x74bc" identifier = (binary_expression "PTR_LAB_000f52cc + 0x74bc" identifier + number_literal)) ;) (goto_statement "goto LAB_000629b8;" goto statement_identifier ;) })) (labeled_statement "LAB_00062b54:\n      local_48 = &local_30;" statement_identifier : (expression_statement "local_48 = &local_30;" (assignment_expression "local_48 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;)) (expression_statement "param_2 = pbVar15;" (assignment_expression "param_2 = pbVar15" identifier = identifier) ;) (expression_statement "iVar3 = FUN_0006290c(param_1);" (assignment_expression "iVar3 = FUN_0006290c(param_1)" identifier = (call_expression "FUN_0006290c(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x4950))();" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x4950))()" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x4950))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x4950)" * (cast_expression "(code *)(PTR_LAB_000f52ec + -0x4950)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x4950)" ( (binary_expression "PTR_LAB_000f52ec + -0x4950" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (if_statement "if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" if (parenthesized_expression "((*(ushort *)(local_30 + 2) & 8) == 0)" ( (binary_expression "(*(ushort *)(local_30 + 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(local_30 + 2) & 8)" ( (binary_expression "*(ushort *)(local_30 + 2) & 8" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }" { (if_statement "if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }" if (parenthesized_expression "((*local_30 == 0x80000000) && (local_30[1] == 0))" ( (binary_expression "(*local_30 == 0x80000000) && (local_30[1] == 0)" (parenthesized_expression "(*local_30 == 0x80000000)" ( (binary_expression "*local_30 == 0x80000000" (pointer_expression "*local_30" * identifier) == number_literal) )) && (parenthesized_expression "(local_30[1] == 0)" ( (binary_expression "local_30[1] == 0" (subscript_expression "local_30[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }" { (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_30 + 2) & 0x3e40 | 8" (binary_expression "*(ushort *)(local_30 + 2) & 0x3e40" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);" (assignment_expression "*(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0)" (pointer_expression "*(longlong *)local_30" * (cast_expression "(longlong *)local_30" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(longlong *)(PTR_DAT_000f52d4 + 0x26d0)" * (cast_expression "(longlong *)(PTR_DAT_000f52d4 + 0x26d0)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52d4 + 0x26d0)" ( (binary_expression "PTR_DAT_000f52d4 + 0x26d0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }" else (compound_statement "{\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }" { (expression_statement "uVar18 = -local_30[1];" (assignment_expression "uVar18 = -local_30[1]" identifier = (unary_expression "-local_30[1]" - (subscript_expression "local_30[1]" identifier [ number_literal ]))) ;) (expression_statement "local_30[1] = uVar18;" (assignment_expression "local_30[1] = uVar18" (subscript_expression "local_30[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_30 = -(uint)(uVar18 != 0) - *local_30;" (assignment_expression "*local_30 = -(uint)(uVar18 != 0) - *local_30" (pointer_expression "*local_30" * identifier) = (binary_expression "-(uint)(uVar18 != 0) - *local_30" (unary_expression "-(uint)(uVar18 != 0)" - (call_expression "(uint)(uVar18 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )))) - (pointer_expression "*local_30" * identifier))) ;) }))) }) (else_clause "else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" else (compound_statement "{\n            *local_30 = *local_30 ^ 0x80000000;\n          }" { (expression_statement "*local_30 = *local_30 ^ 0x80000000;" (assignment_expression "*local_30 = *local_30 ^ 0x80000000" (pointer_expression "*local_30" * identifier) = (binary_expression "*local_30 ^ 0x80000000" (pointer_expression "*local_30" * identifier) ^ number_literal)) ;) }))) (expression_statement "param_2 = (byte *)(int)cVar20;" (assignment_expression "param_2 = (byte *)(int)cVar20" identifier = (cast_expression "(byte *)(int)cVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar10 = param_3;" (assignment_expression "pbVar10 = param_3" identifier = identifier) ;) (expression_statement "FUN_000519d4();" (call_expression "FUN_000519d4()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) })) }) (else_clause "else {\nLAB_00062a94:\n        uVar2 = 0;\n      }" else (compound_statement "{\nLAB_00062a94:\n        uVar2 = 0;\n      }" { (labeled_statement "LAB_00062a94:\n        uVar2 = 0;" statement_identifier : (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;)) }))) }) (else_clause "else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }" else (compound_statement "{\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }" { (expression_statement "unaff_s7 = 1;" (assignment_expression "unaff_s7 = 1" identifier = number_literal) ;) (expression_statement "unaff_s6 = PTR_DAT_000f52d4 + -0x543c;" (assignment_expression "unaff_s6 = PTR_DAT_000f52d4 + -0x543c" identifier = (binary_expression "PTR_DAT_000f52d4 + -0x543c" identifier + number_literal)) ;) (labeled_statement "LAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" statement_identifier : (if_statement "if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" if (parenthesized_expression "(((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98))" ( (binary_expression "((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)" (parenthesized_expression "((bVar14 == 0x73) || (bVar14 == 0x96))" ( (binary_expression "(bVar14 == 0x73) || (bVar14 == 0x96)" (parenthesized_expression "(bVar14 == 0x73)" ( (binary_expression "bVar14 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(bVar14 == 0x96)" ( (binary_expression "bVar14 == 0x96" identifier == number_literal) ))) )) || (parenthesized_expression "(bVar14 == 0x98)" ( (binary_expression "bVar14 == 0x98" identifier == number_literal) ))) )) (compound_statement "{\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }" { (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" identifier = (cast_expression "(byte *)0x28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (local_30 == (uint *)0x0) goto LAB_00062b00;" if (parenthesized_expression "(local_30 == (uint *)0x0)" ( (binary_expression "local_30 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062b00;" goto statement_identifier ;)) (expression_statement "uVar2 = *(uint *)(pbVar15 + 4);" (assignment_expression "uVar2 = *(uint *)(pbVar15 + 4)" identifier = (pointer_expression "*(uint *)(pbVar15 + 4)" * (cast_expression "(uint *)(pbVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15 + 4)" ( (binary_expression "pbVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_30[8] = param_1;" (assignment_expression "local_30[8] = param_1" (subscript_expression "local_30[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined2 *)(local_30 + 2) = 1;" (assignment_expression "*(undefined2 *)(local_30 + 2) = 1" (pointer_expression "*(undefined2 *)(local_30 + 2)" * (cast_expression "(undefined2 *)(local_30 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }" if (parenthesized_expression "((uVar2 & 0x400) == 0)" ( (binary_expression "(uVar2 & 0x400) == 0" (parenthesized_expression "(uVar2 & 0x400)" ( (binary_expression "uVar2 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }" { (expression_statement "pbVar13 = *(byte **)(pbVar15 + 8);" (assignment_expression "pbVar13 = *(byte **)(pbVar15 + 8)" identifier = (pointer_expression "*(byte **)(pbVar15 + 8)" * (cast_expression "(byte **)(pbVar15 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar15 + 8)" ( (binary_expression "pbVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "param_2 = PTR_DAT_000f52d4 + -0x7ff4;" (assignment_expression "param_2 = PTR_DAT_000f52d4 + -0x7ff4" identifier = (binary_expression "PTR_DAT_000f52d4 + -0x7ff4" identifier + number_literal)) ;) (expression_statement "pbVar10 = unaff_s6;" (assignment_expression "pbVar10 = unaff_s6" identifier = identifier) ;) (expression_statement "iVar3 = FUN_0004d30c(param_1);" (assignment_expression "iVar3 = FUN_0004d30c(param_1)" identifier = (call_expression "FUN_0004d30c(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_00062b04;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062b04;" goto statement_identifier ;)) (if_statement "if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }" { (expression_statement "pbVar13 = (byte *)0x1;" (assignment_expression "pbVar13 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);" (assignment_expression "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4)" identifier = (cast_expression "(uint **)(PTR_LAB_000f52ec + 0x67f4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x67f4)" ( (binary_expression "PTR_LAB_000f52ec + 0x67f4" identifier + number_literal) )))) ;) (expression_statement "FUN_0005b00c(local_30,iVar3,0xffffffff);" (call_expression "FUN_0005b00c(local_30,iVar3,0xffffffff)" identifier (argument_list "(local_30,iVar3,0xffffffff)" ( identifier , identifier , number_literal ))) ;) })) }) (else_clause "else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }" else (compound_statement "{\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }" { (expression_statement "iVar3 = *(int *)(pbVar15 + 8);" (assignment_expression "iVar3 = *(int *)(pbVar15 + 8)" identifier = (pointer_expression "*(int *)(pbVar15 + 8)" * (cast_expression "(int *)(pbVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15 + 8)" ( (binary_expression "pbVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined2 *)(local_30 + 2) = 4;" (assignment_expression "*(undefined2 *)(local_30 + 2) = 4" (pointer_expression "*(undefined2 *)(local_30 + 2)" * (cast_expression "(undefined2 *)(local_30 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;" (assignment_expression "*(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7" (pointer_expression "*(longlong *)local_30" * (cast_expression "(longlong *)local_30" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(longlong)iVar3 * (longlong)unaff_s7" (cast_expression "(longlong)iVar3" ( (type_descriptor "longlong" type_identifier) ) identifier) * (cast_expression "(longlong)unaff_s7" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) }))) (if_statement "if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }" if (parenthesized_expression "(((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41))" ( (binary_expression "((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)" (parenthesized_expression "((bVar14 == 0x98) || (bVar14 == 0x96))" ( (binary_expression "(bVar14 == 0x98) || (bVar14 == 0x96)" (parenthesized_expression "(bVar14 == 0x98)" ( (binary_expression "bVar14 == 0x98" identifier == number_literal) )) || (parenthesized_expression "(bVar14 == 0x96)" ( (binary_expression "bVar14 == 0x96" identifier == number_literal) ))) )) && (parenthesized_expression "(param_4 == (byte *)0x41)" ( (binary_expression "param_4 == (byte *)0x41" identifier == (cast_expression "(byte *)0x41" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }" { (expression_statement "pbVar10 = (byte *)0x1;" (assignment_expression "pbVar10 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (byte *)0x43;" (assignment_expression "param_2 = (byte *)0x43" identifier = (cast_expression "(byte *)0x43" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000519d4(local_30);" (call_expression "FUN_000519d4(local_30)" identifier (argument_list "(local_30)" ( identifier ))) ;) }) (else_clause "else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }" else (compound_statement "{\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }" { (expression_statement "pbVar10 = (byte *)0x1;" (assignment_expression "pbVar10 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (byte *)(int)cVar20;" (assignment_expression "param_2 = (byte *)(int)cVar20" identifier = (cast_expression "(byte *)(int)cVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_000519d4(local_30);" (call_expression "FUN_000519d4(local_30)" identifier (argument_list "(local_30)" ( identifier ))) ;) }))) (if_statement "if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }" if (parenthesized_expression "((*(ushort *)(local_30 + 2) & 0x2c) != 0)" ( (binary_expression "(*(ushort *)(local_30 + 2) & 0x2c) != 0" (parenthesized_expression "(*(ushort *)(local_30 + 2) & 0x2c)" ( (binary_expression "*(ushort *)(local_30 + 2) & 0x2c" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }" { (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal)) ;) })) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) (if_statement "if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }" if (parenthesized_expression "(param_3 != (byte *)0x1)" ( (binary_expression "param_3 != (byte *)0x1" identifier != (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }" { (if_statement "if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;" if (parenthesized_expression "((local_30[2] & 0x20000) == 0)" ( (binary_expression "(local_30[2] & 0x20000) == 0" (parenthesized_expression "(local_30[2] & 0x20000)" ( (binary_expression "local_30[2] & 0x20000" (subscript_expression "local_30[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00062a94;" goto statement_identifier ;)) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (expression_statement "uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();" (assignment_expression "uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))()" identifier = (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4b48))()" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4b48))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4b48)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4b48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4b48)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4b48" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) })) }) (else_clause "else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" else (compound_statement "{\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" { (if_statement "if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }" if (parenthesized_expression "(bVar14 == 0xaa)" ( (binary_expression "bVar14 == 0xaa" identifier == number_literal) )) (compound_statement "{\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }" { (expression_statement "pbVar15 = *(byte **)(pbVar15 + 0xc);" (assignment_expression "pbVar15 = *(byte **)(pbVar15 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar15 + 0xc)" * (cast_expression "(byte **)(pbVar15 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar15 + 0xc)" ( (binary_expression "pbVar15 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00062b54;" goto statement_identifier ;) })) (if_statement "if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" if (parenthesized_expression "(bVar14 == 0x77)" ( (binary_expression "bVar14 == 0x77" identifier == number_literal) )) (compound_statement "{\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }" { (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" identifier = (cast_expression "(byte *)0x28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }" { (labeled_statement "LAB_00062b00:\n            local_30 = (uint *)0x0;" statement_identifier : (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }" statement_identifier : (if_statement "if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }" if (parenthesized_expression "((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0x50) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x50) & 0xffff00)" ( (binary_expression "*(uint *)(param_1 + 0x50) & 0xffff00" (pointer_expression "*(uint *)(param_1 + 0x50)" * (cast_expression "(uint *)(param_1 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x67b4))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x67b4)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x67b4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x67b4)" ( (binary_expression "PTR_LAB_000f52ec + 0x67b4" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) }))) (expression_statement "uVar2 = 7;" (assignment_expression "uVar2 = 7" identifier = number_literal) ;) (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x6be0))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x6be0)" * (cast_expression "(code *)(PTR_LAB_000f52ec + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x6be0)" ( (binary_expression "PTR_LAB_000f52ec + -0x6be0" identifier + number_literal) )))) )) (argument_list "(local_30)" ( identifier ))) ;) (goto_statement "goto LAB_00062a9c;" goto statement_identifier ;) })) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "*(undefined2 *)(puVar4 + 2) = 1;" (assignment_expression "*(undefined2 *)(puVar4 + 2) = 1" (pointer_expression "*(undefined2 *)(puVar4 + 2)" * (cast_expression "(undefined2 *)(puVar4 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" else (if_statement "if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" if (parenthesized_expression "(bVar14 == 0x97)" ( (binary_expression "bVar14 == 0x97" identifier == number_literal) )) (compound_statement "{\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }" { (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" identifier = (cast_expression "(byte *)0x28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (puVar4 == (uint *)0x0) goto LAB_00062b00;" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062b00;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pbVar15 + 8);" (assignment_expression "iVar3 = *(int *)(pbVar15 + 8)" identifier = (pointer_expression "*(int *)(pbVar15 + 8)" * (cast_expression "(int *)(pbVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15 + 8)" ( (binary_expression "pbVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = iVar3 + 2;" (assignment_expression "iVar3 = iVar3 + 2" identifier = (binary_expression "iVar3 + 2" identifier + number_literal)) ;) (expression_statement "*(undefined2 *)(puVar4 + 2) = 1;" (assignment_expression "*(undefined2 *)(puVar4 + 2) = 1" (pointer_expression "*(undefined2 *)(puVar4 + 2)" * (cast_expression "(undefined2 *)(puVar4 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_30 = puVar4;" (assignment_expression "local_30 = puVar4" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }" { (expression_statement "pbVar15 = (byte *)0x0;" (assignment_expression "pbVar15 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }" else (compound_statement "{\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }" { (expression_statement "uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);" (assignment_expression "uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000f5488)(iVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000f5488)" ( (pointer_expression "*(code *)PTR_strlen_000f5488" * (cast_expression "(code *)PTR_strlen_000f5488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "iVar19 = (uVar2 & 0x3fffffff) - 1;" (assignment_expression "iVar19 = (uVar2 & 0x3fffffff) - 1" identifier = (binary_expression "(uVar2 & 0x3fffffff) - 1" (parenthesized_expression "(uVar2 & 0x3fffffff)" ( (binary_expression "uVar2 & 0x3fffffff" identifier & number_literal) )) - number_literal)) ;) (expression_statement "pbVar15 = (byte *)(iVar19 / 2);" (assignment_expression "pbVar15 = (byte *)(iVar19 / 2)" identifier = (cast_expression "(byte *)(iVar19 / 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 / 2)" ( (binary_expression "iVar19 / 2" identifier / number_literal) )))) ;) }))) (expression_statement "param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);" (assignment_expression "param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19)" identifier = (cast_expression "(byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7d5c))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7d5c)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7d5c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7d5c)" ( (binary_expression "PTR_LAB_000f52ec + 0x7d5c" identifier + number_literal) )))) )) (argument_list "(param_1,iVar3,iVar19)" ( identifier , identifier , identifier ))))) ;) (expression_statement "pbVar13 = (byte *)0x0;" (assignment_expression "pbVar13 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);" (assignment_expression "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4)" identifier = (cast_expression "(uint **)(PTR_LAB_000f52ec + 0x67f4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x67f4)" ( (binary_expression "PTR_LAB_000f52ec + 0x67f4" identifier + number_literal) )))) ;) (expression_statement "pbVar10 = pbVar15;" (assignment_expression "pbVar10 = pbVar15" identifier = identifier) ;) (expression_statement "FUN_0005b00c(puVar4);" (call_expression "FUN_0005b00c(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) }) (else_clause "else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" else (if_statement "if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" if (parenthesized_expression "(bVar14 == 0xa7)" ( (binary_expression "bVar14 == 0xa7" identifier == number_literal) )) (compound_statement "{\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }" { (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" identifier = (cast_expression "(byte *)0x28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" ( (binary_expression "PTR_LAB_000f52ec + 0x7020" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (puVar4 == (uint *)0x0) goto LAB_00062a94;" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062a94;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pbVar15 + 8);" (assignment_expression "iVar3 = *(int *)(pbVar15 + 8)" identifier = (pointer_expression "*(int *)(pbVar15 + 8)" * (cast_expression "(int *)(pbVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15 + 8)" ( (binary_expression "pbVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "*(undefined2 *)(puVar4 + 2) = 4;" (assignment_expression "*(undefined2 *)(puVar4 + 2) = 4" (pointer_expression "*(undefined2 *)(puVar4 + 2)" * (cast_expression "(undefined2 *)(puVar4 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar20 = *(char *)(iVar3 + 4);" (assignment_expression "cVar20 = *(char *)(iVar3 + 4)" identifier = (pointer_expression "*(char *)(iVar3 + 4)" * (cast_expression "(char *)(iVar3 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = (uint)(cVar20 == '\0');" (assignment_expression "puVar4[1] = (uint)(cVar20 == '\0')" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (call_expression "(uint)(cVar20 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar20 == '\0')" ( (binary_expression "cVar20 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ;) }) (else_clause "else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" else (compound_statement "{\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = (uint *)0x0;" (assignment_expression "puVar4 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))))) })))) }))) (expression_statement "*param_5 = puVar4;" (assignment_expression "*param_5 = puVar4" (pointer_expression "*param_5" * identifier) = identifier) ;) }))) (labeled_statement "LAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_2c == *(undefined4 **)puVar1)" ( (binary_expression "local_2c == *(undefined4 **)puVar1" identifier == (pointer_expression "*(undefined4 **)puVar1" * (cast_expression "(undefined4 **)puVar1" ( (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 "pcVar26 = FUN_00062ed8;" (assignment_expression "pcVar26 = FUN_00062ed8" identifier = identifier) ;) (expression_statement "puVar7 = local_2c;" (assignment_expression "puVar7 = local_2c" identifier = identifier) ;) (expression_statement "puVar25 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar25 = 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 "puVar16 = *(undefined4 **)(puVar25 + 0x92690);" (assignment_expression "puVar16 = *(undefined4 **)(puVar25 + 0x92690)" identifier = (pointer_expression "*(undefined4 **)(puVar25 + 0x92690)" * (cast_expression "(undefined4 **)(puVar25 + 0x92690)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x92690)" ( (binary_expression "puVar25 + 0x92690" identifier + number_literal) ))))) ;) (expression_statement "puStack_74 = puVar1;" (assignment_expression "puStack_74 = puVar1" identifier = identifier) ;) (expression_statement "ppuStack_70 = param_5;" (assignment_expression "ppuStack_70 = param_5" identifier = identifier) ;) (expression_statement "piStack_84 = (int *)*puVar16;" (assignment_expression "piStack_84 = (int *)*puVar16" identifier = (cast_expression "(int *)*puVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (expression_statement "uStack_7c = uVar2;" (assignment_expression "uStack_7c = uVar2" identifier = identifier) ;) (expression_statement "pbStack_78 = pbVar15;" (assignment_expression "pbStack_78 = pbVar15" identifier = identifier) ;) (expression_statement "pbStack_6c = param_4;" (assignment_expression "pbStack_6c = param_4" identifier = identifier) ;) (expression_statement "pbStack_68 = pbVar21;" (assignment_expression "pbStack_68 = pbVar21" identifier = identifier) ;) (expression_statement "pbStack_64 = unaff_s6;" (assignment_expression "pbStack_64 = unaff_s6" identifier = identifier) ;) (expression_statement "iStack_60 = unaff_s7;" (assignment_expression "iStack_60 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar26;" (assignment_expression "pcStack_5c = pcVar26" identifier = identifier) ;) (if_statement "if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;" if (parenthesized_expression "(pbVar10 == (byte *)0x0)" ( (binary_expression "pbVar10 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }" else (compound_statement "{\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }" { (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (if_statement "if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;" if (parenthesized_expression "(pbVar10 == (byte *)0x0)" ( (binary_expression "pbVar10 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99))" ( (binary_expression "(puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)" (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*param_2 == 0x99)" ( (binary_expression "*param_2 == 0x99" (pointer_expression "*param_2" * identifier) == number_literal) ))) )) (compound_statement "{\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }" { (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbStack_88 = (byte *)0x0;" (assignment_expression "pbStack_88 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) (expression_statement "FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);" (call_expression "FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88)" identifier (argument_list "(*puVar7,pbVar10,1,0x41,&pbStack_88)" ( (pointer_expression "*puVar7" * identifier) , identifier , number_literal , number_literal , (pointer_expression "&pbStack_88" & identifier) ))) ;) (if_statement "if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }" if (parenthesized_expression "(pbStack_88 != (byte *)0x0)" ( (binary_expression "pbStack_88 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }" { (expression_statement "pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);" (assignment_expression "pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20)" identifier = (cast_expression "(byte *)(int)*(short *)(param_2 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(short *)(param_2 + 0x20)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(param_2 + 0x20)" * (cast_expression "(short *)(param_2 + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))))) ;) (expression_statement "iVar3 = puVar7[2];" (assignment_expression "iVar3 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (if_statement "if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }" if (parenthesized_expression "((int)pbVar9 < 0x20)" ( (binary_expression "(int)pbVar9 < 0x20" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }" { (expression_statement "pbVar11 = pbVar9 + -1;" (assignment_expression "pbVar11 = pbVar9 + -1" identifier = (binary_expression "pbVar9 + -1" identifier + number_literal)) ;) (expression_statement "*(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);" (assignment_expression "*(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0)" (pointer_expression "*(uint *)(iVar3 + 0xd0)" * (cast_expression "(uint *)(iVar3 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd0)" ( (binary_expression "iVar3 + 0xd0" identifier + number_literal) )))) = (binary_expression "1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0)" (binary_expression "1 << ((uint)pbVar11 & 0x1f)" number_literal << (parenthesized_expression "((uint)pbVar11 & 0x1f)" ( (binary_expression "(uint)pbVar11 & 0x1f" (cast_expression "(uint)pbVar11" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) | (pointer_expression "*(uint *)(iVar3 + 0xd0)" * (cast_expression "(uint *)(iVar3 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd0)" ( (binary_expression "iVar3 + 0xd0" identifier + number_literal) )))))) ;) }) (else_clause "else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }" else (compound_statement "{\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }" { (expression_statement "*(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;" (assignment_expression "*(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000" (pointer_expression "*(uint *)(iVar3 + 0xd0)" * (cast_expression "(uint *)(iVar3 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd0)" ( (binary_expression "iVar3 + 0xd0" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0xd0) | 0x80000000" (pointer_expression "*(uint *)(iVar3 + 0xd0)" * (cast_expression "(uint *)(iVar3 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xd0)" ( (binary_expression "iVar3 + 0xd0" identifier + number_literal) )))) | number_literal)) ;) }))) (expression_statement "iVar3 = FUN_00051a50(puVar7[0x38]);" (assignment_expression "iVar3 = FUN_00051a50(puVar7[0x38])" identifier = (call_expression "FUN_00051a50(puVar7[0x38])" identifier (argument_list "(puVar7[0x38])" ( (subscript_expression "puVar7[0x38]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }" { (expression_statement "iVar3 = *(int *)(puVar25 + 0x92414);" (assignment_expression "iVar3 = *(int *)(puVar25 + 0x92414)" identifier = (pointer_expression "*(int *)(puVar25 + 0x92414)" * (cast_expression "(int *)(puVar25 + 0x92414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x92414)" ( (binary_expression "puVar25 + 0x92414" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(iVar3 + -0x6be0))(pbStack_88);" (call_expression "(*(code *)(iVar3 + -0x6be0))(pbStack_88)" (parenthesized_expression "(*(code *)(iVar3 + -0x6be0))" ( (pointer_expression "*(code *)(iVar3 + -0x6be0)" * (cast_expression "(code *)(iVar3 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x6be0)" ( (binary_expression "iVar3 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(pbStack_88)" ( identifier ))) ;) (expression_statement "(*(code *)(iVar3 + -0x6be0))(0);" (call_expression "(*(code *)(iVar3 + -0x6be0))(0)" (parenthesized_expression "(*(code *)(iVar3 + -0x6be0))" ( (pointer_expression "*(code *)(iVar3 + -0x6be0)" * (cast_expression "(code *)(iVar3 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x6be0)" ( (binary_expression "iVar3 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }" else (compound_statement "{\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }" { (expression_statement "iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);" (assignment_expression "iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3)" identifier = (call_expression "(**(code **)(puVar25 + 0x92614))(iVar3)" (parenthesized_expression "(**(code **)(puVar25 + 0x92614))" ( (pointer_expression "**(code **)(puVar25 + 0x92614)" * (pointer_expression "*(code **)(puVar25 + 0x92614)" * (cast_expression "(code **)(puVar25 + 0x92614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x92614)" ( (binary_expression "puVar25 + 0x92614" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }" if (parenthesized_expression "(iVar19 == 3)" ( (binary_expression "iVar19 == 3" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }" { (expression_statement "(**(code **)(puVar25 + 0x924c4))(iVar3);" (call_expression "(**(code **)(puVar25 + 0x924c4))(iVar3)" (parenthesized_expression "(**(code **)(puVar25 + 0x924c4))" ( (pointer_expression "**(code **)(puVar25 + 0x924c4)" * (pointer_expression "*(code **)(puVar25 + 0x924c4)" * (cast_expression "(code **)(puVar25 + 0x924c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x924c4)" ( (binary_expression "puVar25 + 0x924c4" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) })) (expression_statement "pbVar11 = (byte *)0x0;" (assignment_expression "pbVar11 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar9 = pbStack_88;" (assignment_expression "pbVar9 = pbStack_88" identifier = identifier) ;) (expression_statement "iVar19 = FUN_0004f704(iVar3,pbStack_88,0);" (assignment_expression "iVar19 = FUN_0004f704(iVar3,pbStack_88,0)" identifier = (call_expression "FUN_0004f704(iVar3,pbStack_88,0)" identifier (argument_list "(iVar3,pbStack_88,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar23 = *(int *)(puVar25 + 0x92414);" (assignment_expression "iVar23 = *(int *)(puVar25 + 0x92414)" identifier = (pointer_expression "*(int *)(puVar25 + 0x92414)" * (cast_expression "(int *)(puVar25 + 0x92414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x92414)" ( (binary_expression "puVar25 + 0x92414" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(iVar23 + -0x6be0))(pbStack_88);" (call_expression "(*(code *)(iVar23 + -0x6be0))(pbStack_88)" (parenthesized_expression "(*(code *)(iVar23 + -0x6be0))" ( (pointer_expression "*(code *)(iVar23 + -0x6be0)" * (cast_expression "(code *)(iVar23 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x6be0)" ( (binary_expression "iVar23 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(pbStack_88)" ( identifier ))) ;) (expression_statement "(*(code *)(iVar23 + -0x6be0))(iVar3);" (call_expression "(*(code *)(iVar23 + -0x6be0))(iVar3)" (parenthesized_expression "(*(code *)(iVar23 + -0x6be0))" ( (pointer_expression "*(code *)(iVar23 + -0x6be0)" * (cast_expression "(code *)(iVar23 + -0x6be0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x6be0)" ( (binary_expression "iVar23 + -0x6be0" identifier + number_literal) )))) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;) })) }))) })) })) (expression_statement "uVar24 = *(uint *)(param_2 + 4);" (assignment_expression "uVar24 = *(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 "uVar18 = *(uint *)(pbVar10 + 4);" (assignment_expression "uVar18 = *(uint *)(pbVar10 + 4)" identifier = (pointer_expression "*(uint *)(pbVar10 + 4)" * (cast_expression "(uint *)(pbVar10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 4)" ( (binary_expression "pbVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = uVar24 | uVar18;" (assignment_expression "uVar22 = uVar24 | uVar18" identifier = (binary_expression "uVar24 | uVar18" identifier | identifier)) ;) (if_statement "if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }" if (parenthesized_expression "((uVar22 & 0x400) != 0)" ( (binary_expression "(uVar22 & 0x400) != 0" (parenthesized_expression "(uVar22 & 0x400)" ( (binary_expression "uVar22 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }" { (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (if_statement "if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;" if (parenthesized_expression "((uVar18 & 0x400 & uVar24) == 0)" ( (binary_expression "(uVar18 & 0x400 & uVar24) == 0" (parenthesized_expression "(uVar18 & 0x400 & uVar24)" ( (binary_expression "uVar18 & 0x400 & uVar24" (binary_expression "uVar18 & 0x400" identifier & number_literal) & identifier) )) == number_literal) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;" if (parenthesized_expression "(*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8))" ( (binary_expression "*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) != (pointer_expression "*(int *)(pbVar10 + 8)" * (cast_expression "(int *)(pbVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 8)" ( (binary_expression "pbVar10 + 8" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (goto_statement "goto LAB_00062f88;" goto statement_identifier ;) })) (expression_statement "bVar14 = *param_2;" (assignment_expression "bVar14 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "bVar6 = *pbVar10;" (assignment_expression "bVar6 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (if_statement "if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }" if (parenthesized_expression "(bVar14 == bVar6)" ( (binary_expression "bVar14 == bVar6" identifier == identifier) )) (compound_statement "{\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }" { (if_statement "if (bVar14 == 0x47) goto LAB_00062fb4;" if (parenthesized_expression "(bVar14 == 0x47)" ( (binary_expression "bVar14 == 0x47" identifier == number_literal) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (if_statement "if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;" if (parenthesized_expression "(((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))" ( (binary_expression "((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0)" (parenthesized_expression "((bVar14 & 0xfd) == 0xa4)" ( (binary_expression "(bVar14 & 0xfd) == 0xa4" (parenthesized_expression "(bVar14 & 0xfd)" ( (binary_expression "bVar14 & 0xfd" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0)" ( (comma_expression "pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0" (assignment_expression "pbVar15 = *(byte **)(param_2 + 8)" identifier = (pointer_expression "*(byte **)(param_2 + 8)" * (cast_expression "(byte **)(param_2 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) , (binary_expression "pbVar15 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0006305c;" goto statement_identifier ;)) (if_statement "if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }" if (parenthesized_expression "((bVar14 == 0xa9) || (bVar14 == 0xa5))" ( (binary_expression "(bVar14 == 0xa9) || (bVar14 == 0xa5)" (parenthesized_expression "(bVar14 == 0xa9)" ( (binary_expression "bVar14 == 0xa9" identifier == number_literal) )) || (parenthesized_expression "(bVar14 == 0xa5)" ( (binary_expression "bVar14 == 0xa5" identifier == number_literal) ))) )) (compound_statement "{\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }" { (expression_statement "pbVar9 = *(byte **)(pbVar10 + 8);" (assignment_expression "pbVar9 = *(byte **)(pbVar10 + 8)" identifier = (pointer_expression "*(byte **)(pbVar10 + 8)" * (cast_expression "(byte **)(pbVar10 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 8)" ( (binary_expression "pbVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);" (assignment_expression "pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac)" identifier = (cast_expression "(byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x923fc) + 0x25ac)" ( (binary_expression "*(int *)(puVar25 + 0x923fc) + 0x25ac" (pointer_expression "*(int *)(puVar25 + 0x923fc)" * (cast_expression "(int *)(puVar25 + 0x923fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x923fc)" ( (binary_expression "puVar25 + 0x923fc" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );" do (compound_statement "{\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        }" { (expression_statement "uVar5 = (uint)*pbVar15;" (assignment_expression "uVar5 = (uint)*pbVar15" identifier = (binary_expression "(uint)*pbVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }" if (parenthesized_expression "(uVar5 == *pbVar9)" ( (binary_expression "uVar5 == *pbVar9" identifier == (pointer_expression "*pbVar9" * identifier)) )) (compound_statement "{\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }" { (if_statement "if (uVar5 == 0) goto code_r0x000632f4;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000632f4;" goto statement_identifier ;)) }) (else_clause "else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }" else (compound_statement "{\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }" { (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (if_statement "if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;" if (parenthesized_expression "(pbVar11[uVar5] != pbVar11[*pbVar9])" ( (binary_expression "pbVar11[uVar5] != pbVar11[*pbVar9]" (subscript_expression "pbVar11[uVar5]" identifier [ identifier ]) != (subscript_expression "pbVar11[*pbVar9]" identifier [ (pointer_expression "*pbVar9" * identifier) ])) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) }))) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (bVar14 == 0x77) goto LAB_00062f88;" if (parenthesized_expression "(bVar14 == 0x77)" ( (binary_expression "bVar14 == 0x77" identifier == number_literal) )) (goto_statement "goto LAB_00062f88;" goto statement_identifier ;)) (expression_statement "pbVar9 = *(byte **)(pbVar10 + 8);" (assignment_expression "pbVar9 = *(byte **)(pbVar10 + 8)" identifier = (pointer_expression "*(byte **)(pbVar10 + 8)" * (cast_expression "(byte **)(pbVar10 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 8)" ( (binary_expression "pbVar10 + 8" identifier + number_literal) ))))) ;) (if_statement "if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(bVar14 == 0x6f)" ( (binary_expression "bVar14 == 0x6f" identifier == number_literal) )) (compound_statement "{\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }" { (expression_statement "iVar3 = (**(code **)(puVar25 + 0x9254c))();" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x9254c))()" identifier = (call_expression "(**(code **)(puVar25 + 0x9254c))()" (parenthesized_expression "(**(code **)(puVar25 + 0x9254c))" ( (pointer_expression "**(code **)(puVar25 + 0x9254c)" * (pointer_expression "*(code **)(puVar25 + 0x9254c)" * (cast_expression "(code **)(puVar25 + 0x9254c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x9254c)" ( (binary_expression "puVar25 + 0x9254c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }" { (expression_statement "uVar24 = *(uint *)(param_2 + 4);" (assignment_expression "uVar24 = *(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 "uVar18 = *(uint *)(pbVar10 + 4);" (assignment_expression "uVar18 = *(uint *)(pbVar10 + 4)" identifier = (pointer_expression "*(uint *)(pbVar10 + 4)" * (cast_expression "(uint *)(pbVar10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 4)" ( (binary_expression "pbVar10 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006305c;" goto statement_identifier ;) })) }) (else_clause "else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" else (if_statement "if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))" ( (binary_expression "(pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0)" (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0)" ( (comma_expression "iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x926e0))()" identifier = (call_expression "(**(code **)(puVar25 + 0x926e0))()" (parenthesized_expression "(**(code **)(puVar25 + 0x926e0))" ( (pointer_expression "**(code **)(puVar25 + 0x926e0)" * (pointer_expression "*(code **)(puVar25 + 0x926e0)" * (cast_expression "(code **)(puVar25 + 0x926e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x926e0)" ( (binary_expression "puVar25 + 0x926e0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" statement_identifier : (if_statement "if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((uVar18 ^ uVar24) & 0x202) == 0)" ( (binary_expression "((uVar18 ^ uVar24) & 0x202) == 0" (parenthesized_expression "((uVar18 ^ uVar24) & 0x202)" ( (binary_expression "(uVar18 ^ uVar24) & 0x202" (parenthesized_expression "(uVar18 ^ uVar24)" ( (binary_expression "uVar18 ^ uVar24" identifier ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;" if (parenthesized_expression "((uVar22 & 0x4000) != 0)" ( (binary_expression "(uVar22 & 0x4000) != 0" (parenthesized_expression "(uVar22 & 0x4000)" ( (binary_expression "uVar22 & 0x4000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }" if (parenthesized_expression "((uVar22 & 0x800) == 0)" ( (binary_expression "(uVar22 & 0x800) == 0" (parenthesized_expression "(uVar22 & 0x800)" ( (binary_expression "uVar22 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }" { (if_statement "if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" if (parenthesized_expression "((uVar22 & 8) == 0)" ( (binary_expression "(uVar22 & 8) == 0" (parenthesized_expression "(uVar22 & 8)" ( (binary_expression "uVar22 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" { (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0xc);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0xc)" * (cast_expression "(byte **)(pbVar10 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0xc)" ( (binary_expression "pbVar10 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = *(byte **)(param_2 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0xc)" identifier = (pointer_expression "*(byte **)(param_2 + 0xc)" * (cast_expression "(byte **)(param_2 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" identifier = (call_expression "FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" identifier (argument_list "(puVar7,pbVar9,pbVar11,pbVar13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00062fb4;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0x10);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0x10)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0x10)" * (cast_expression "(byte **)(pbVar10 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0x10)" ( (binary_expression "pbVar10 + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" else (compound_statement "{\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" { (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0x10);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0x10)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0x10)" * (cast_expression "(byte **)(pbVar10 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0x10)" ( (binary_expression "pbVar10 + 0x10" identifier + number_literal) ))))) ;) }))) (expression_statement "pbVar9 = *(byte **)(param_2 + 0x10);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0x10)" identifier = (pointer_expression "*(byte **)(param_2 + 0x10)" * (cast_expression "(byte **)(param_2 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" identifier = (call_expression "FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" identifier (argument_list "(puVar7,pbVar9,pbVar11,pbVar13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }" { (expression_statement "pbVar9 = *(byte **)(pbVar10 + 0x14);" (assignment_expression "pbVar9 = *(byte **)(pbVar10 + 0x14)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0x14)" * (cast_expression "(byte **)(pbVar10 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0x14)" ( (binary_expression "pbVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = pbVar13;" (assignment_expression "pbVar11 = pbVar13" identifier = identifier) ;) (expression_statement "iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);" (assignment_expression "iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13)" identifier = (call_expression "FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x14)" * (cast_expression "(undefined4 *)(param_2 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) )))) , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }" { (expression_statement "bVar14 = *param_2;" (assignment_expression "bVar14 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }" if (parenthesized_expression "(((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0))" ( (binary_expression "((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)" (parenthesized_expression "((bVar14 == 0x73) || (bVar14 == 0xa7))" ( (binary_expression "(bVar14 == 0x73) || (bVar14 == 0xa7)" (parenthesized_expression "(bVar14 == 0x73)" ( (binary_expression "bVar14 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(bVar14 == 0xa7)" ( (binary_expression "bVar14 == 0xa7" identifier == number_literal) ))) )) || (parenthesized_expression "((uVar22 & 0x2000) != 0)" ( (binary_expression "(uVar22 & 0x2000) != 0" (parenthesized_expression "(uVar22 & 0x2000)" ( (binary_expression "uVar22 & 0x2000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }" { (labeled_statement "LAB_00062f88:\n                  uVar2 = 0;" statement_identifier : (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;) })) (if_statement "if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }" if (parenthesized_expression "((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac))))" ( (binary_expression "(*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))" (parenthesized_expression "(*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20))" ( (binary_expression "*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)" (pointer_expression "*(short *)(param_2 + 0x20)" * (cast_expression "(short *)(param_2 + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) == (pointer_expression "*(short *)(pbVar10 + 0x20)" * (cast_expression "(short *)(pbVar10 + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 0x20)" ( (binary_expression "pbVar10 + 0x20" identifier + number_literal) ))))) )) && (parenthesized_expression "((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))" ( (parenthesized_expression "(param_2[2] == pbVar10[2] || (bVar14 != 0xac))" ( (binary_expression "param_2[2] == pbVar10[2] || (bVar14 != 0xac)" (binary_expression "param_2[2] == pbVar10[2]" (subscript_expression "param_2[2]" identifier [ number_literal ]) == (subscript_expression "pbVar10[2]" identifier [ number_literal ])) || (parenthesized_expression "(bVar14 != 0xac)" ( (binary_expression "bVar14 != 0xac" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if (bVar14 == 0x31) goto LAB_00062fb8;" if (parenthesized_expression "(bVar14 == 0x31)" ( (binary_expression "bVar14 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) (if_statement "if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;" if (parenthesized_expression "(*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c))" ( (binary_expression "*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)" (pointer_expression "*(byte **)(param_2 + 0x1c)" * (cast_expression "(byte **)(param_2 + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) == (pointer_expression "*(byte **)(pbVar10 + 0x1c)" * (cast_expression "(byte **)(pbVar10 + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0x1c)" ( (binary_expression "pbVar10 + 0x1c" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00062f88;" goto statement_identifier ;)) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;" if (parenthesized_expression "(pbVar13 == *(byte **)(param_2 + 0x1c))" ( (binary_expression "pbVar13 == *(byte **)(param_2 + 0x1c)" identifier == (pointer_expression "*(byte **)(param_2 + 0x1c)" * (cast_expression "(byte **)(param_2 + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;)) })) })) })) })) }))) })))) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;) })) (if_statement "if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }" if (parenthesized_expression "(bVar14 == 0x6f)" ( (binary_expression "bVar14 == 0x6f" identifier == number_literal) )) (compound_statement "{\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }" { (expression_statement "pbVar9 = *(byte **)(param_2 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0xc)" identifier = (pointer_expression "*(byte **)(param_2 + 0xc)" * (cast_expression "(byte **)(param_2 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13)" identifier = (call_expression "FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13)" identifier (argument_list "(puVar7,pbVar9,pbVar10,pbVar13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }" if (parenthesized_expression "(1 < iVar3)" ( (binary_expression "1 < iVar3" number_literal < identifier) )) (compound_statement "{\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }" { (expression_statement "bVar6 = *pbVar10;" (assignment_expression "bVar6 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (goto_statement "goto LAB_00062fa8;" goto statement_identifier ;) })) (labeled_statement "LAB_0006323c:\n      uVar2 = 1;" statement_identifier : (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_00062fb8;" goto statement_identifier ;) })) (labeled_statement "LAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }" statement_identifier : (if_statement "if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }" if (parenthesized_expression "(bVar6 == 0x6f)" ( (binary_expression "bVar6 == 0x6f" identifier == number_literal) )) (compound_statement "{\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }" { (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0xc);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0xc)" * (cast_expression "(byte **)(pbVar10 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0xc)" ( (binary_expression "pbVar10 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13)" identifier = (call_expression "FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13)" identifier (argument_list "(puVar7,param_2,pbVar11,pbVar13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (if_statement "if (iVar3 < 2) goto LAB_0006323c;" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0006323c;" goto statement_identifier ;)) }))) }))) (labeled_statement "LAB_00062fb4:\n  uVar2 = 2;" statement_identifier : (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;)) (labeled_statement "LAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }" if (parenthesized_expression "(piStack_84 == (int *)*puVar16)" ( (binary_expression "piStack_84 == (int *)*puVar16" identifier == (cast_expression "(int *)*puVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "pcVar26 = *(code **)(puVar25 + 0x92668);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0x92668)" identifier = (pointer_expression "*(code **)(puVar25 + 0x92668)" * (cast_expression "(code **)(puVar25 + 0x92668)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x92668)" ( (binary_expression "puVar25 + 0x92668" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = piStack_84;" (assignment_expression "piVar8 = piStack_84" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar26 = pcVar26 + 0x99ef4;" (assignment_expression "pcVar26 = pcVar26 + 0x99ef4" identifier = (binary_expression "pcVar26 + 0x99ef4" identifier + number_literal)) ;) (if_statement "if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (uint)(pbVar9 != (byte *)0x0);\n  }" { (return_statement "return (uint)(pbVar9 != (byte *)0x0);" return (call_expression "(uint)(pbVar9 != (byte *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar9 != (byte *)0x0)" ( (binary_expression "pbVar9 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ;) })) (if_statement "if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }" if (parenthesized_expression "((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9))" ( (binary_expression "(pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)" (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*piVar8 != *(int *)pbVar9)" ( (binary_expression "*piVar8 != *(int *)pbVar9" (pointer_expression "*piVar8" * identifier) != (pointer_expression "*(int *)pbVar9" * (cast_expression "(int *)pbVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*piVar8 < 1) {\n    return 0;\n  }" if (parenthesized_expression "(*piVar8 < 1)" ( (binary_expression "*piVar8 < 1" (pointer_expression "*piVar8" * identifier) < number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = piVar8[1];" (assignment_expression "iVar3 = piVar8[1]" identifier = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = *(undefined4 *)(pbVar9 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pbVar9 + 4)" identifier = (pointer_expression "*(undefined4 *)(pbVar9 + 4)" * (cast_expression "(undefined4 *)(pbVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + 4)" ( (binary_expression "pbVar9 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }" if (parenthesized_expression "(*(byte *)(piVar8 + 3) == pbVar9[0xc])" ( (binary_expression "*(byte *)(piVar8 + 3) == pbVar9[0xc]" (pointer_expression "*(byte *)(piVar8 + 3)" * (cast_expression "(byte *)(piVar8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 3)" ( (binary_expression "piVar8 + 3" identifier + number_literal) )))) == (subscript_expression "pbVar9[0xc]" identifier [ number_literal ])) )) (compound_statement "{\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar9 + 0x14;" (assignment_expression "pbVar15 = pbVar9 + 0x14" identifier = (binary_expression "pbVar9 + 0x14" identifier + number_literal)) ;) (expression_statement "piVar17 = piVar8 + 5;" (assignment_expression "piVar17 = piVar8 + 5" identifier = (binary_expression "piVar8 + 5" identifier + number_literal)) ;) (do_statement "do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);" do (compound_statement "{\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    }" { (expression_statement "uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);" (assignment_expression "uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26)" identifier = (call_expression "FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26)" identifier (argument_list "(0,iVar3,uVar12,pbVar11,pcVar26)" ( number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if (uVar2 != 0) {\n        return uVar2;\n      }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        return uVar2;\n      }" { (return_statement "return uVar2;" return identifier ;) })) (if_statement "if (*piVar8 <= iVar19) {\n        return 0;\n      }" if (parenthesized_expression "(*piVar8 <= iVar19)" ( (binary_expression "*piVar8 <= iVar19" (pointer_expression "*piVar8" * identifier) <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar10 = (byte *)(piVar17 + 2);" (assignment_expression "pbVar10 = (byte *)(piVar17 + 2)" identifier = (cast_expression "(byte *)(piVar17 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 2)" ( (binary_expression "piVar17 + 2" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = pbVar15 + 8;" (assignment_expression "pbVar13 = pbVar15 + 8" identifier = (binary_expression "pbVar15 + 8" identifier + number_literal)) ;) (expression_statement "iVar3 = *piVar17;" (assignment_expression "iVar3 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "uVar12 = *(undefined4 *)pbVar15;" (assignment_expression "uVar12 = *(undefined4 *)pbVar15" identifier = (pointer_expression "*(undefined4 *)pbVar15" * (cast_expression "(undefined4 *)pbVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar15 = pbVar15 + 0x10;" (assignment_expression "pbVar15 = pbVar15 + 0x10" identifier = (binary_expression "pbVar15 + 0x10" identifier + number_literal)) ;) (expression_statement "piVar17 = piVar17 + 4;" (assignment_expression "piVar17 = piVar17 + 4" identifier = (binary_expression "piVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pbVar10 == *pbVar13)" ( (binary_expression "*pbVar10 == *pbVar13" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar13" * identifier)) )) ;) })) (return_statement "return 1;" return number_literal ;) (labeled_statement "code_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }" statement_identifier : (if_statement "if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }" if (parenthesized_expression "((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f)" ( (binary_expression "(uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f" (call_expression "(uint)((uVar24 & 0x1000000) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar24 & 0x1000000) != 0)" ( (binary_expression "(uVar24 & 0x1000000) != 0" (parenthesized_expression "(uVar24 & 0x1000000)" ( (binary_expression "uVar24 & 0x1000000" identifier & number_literal) )) != number_literal) ))) == (binary_expression "(uVar18 << 7) >> 0x1f" (parenthesized_expression "(uVar18 << 7)" ( (binary_expression "uVar18 << 7" identifier << number_literal) )) >> number_literal)) )) (compound_statement "{\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }" { (if_statement "if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }" if (parenthesized_expression "((uVar24 & 0x1000000) != 0)" ( (binary_expression "(uVar24 & 0x1000000) != 0" (parenthesized_expression "(uVar24 & 0x1000000)" ( (binary_expression "uVar24 & 0x1000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }" { (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0x2c);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0x2c)" identifier = (pointer_expression "*(byte **)(pbVar10 + 0x2c)" * (cast_expression "(byte **)(pbVar10 + 0x2c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar10 + 0x2c)" ( (binary_expression "pbVar10 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = *(byte **)(param_2 + 0x2c);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0x2c)" identifier = (pointer_expression "*(byte **)(param_2 + 0x2c)" * (cast_expression "(byte **)(param_2 + 0x2c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);" (assignment_expression "iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1)" identifier = (call_expression "FUN_000634f0(puVar7,pbVar9,pbVar11,1)" identifier (argument_list "(puVar7,pbVar9,pbVar11,1)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00062fb4;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;)) (expression_statement "uVar24 = *(uint *)(param_2 + 4);" (assignment_expression "uVar24 = *(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 "uVar18 = *(uint *)(pbVar10 + 4);" (assignment_expression "uVar18 = *(uint *)(pbVar10 + 4)" identifier = (pointer_expression "*(uint *)(pbVar10 + 4)" * (cast_expression "(uint *)(pbVar10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 4)" ( (binary_expression "pbVar10 + 4" identifier + number_literal) ))))) ;) })) (goto_statement "goto LAB_0006305c;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00062fb4;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * IDENT))) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression IDENT == LIT) )))) )) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) - (pointer_expression * IDENT))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT / LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT ))))) ;) (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 = (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 IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))))))) })))) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 = 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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , LIT , LIT , (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( LIT ))) ;) }) (else_clause else (compound_statement { (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (binary_expression IDENT | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT & LIT) & IDENT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (subscript_expression IDENT [ (pointer_expression * IDENT) ])) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 ( )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression 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 = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (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 = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) })) })) })) })) }))) })))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) ;) })) (return_statement return LIT ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) == (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression 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 = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (goto_statement goto statement_identifier ;) }))) (goto_statement goto statement_identifier ;) })))
(function_definition "uint FUN_0006290c(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  byte bVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  byte *pbVar15;\n  undefined4 *puVar16;\n  int *piVar17;\n  uint uVar18;\n  char cVar20;\n  int iVar19;\n  byte *pbVar21;\n  byte *unaff_s6;\n  uint uVar22;\n  int iVar23;\n  int unaff_s7;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  byte *pbStack_88;\n  int *piStack_84;\n  uint uStack_7c;\n  byte *pbStack_78;\n  undefined *puStack_74;\n  uint **ppuStack_70;\n  byte *pbStack_6c;\n  byte *pbStack_68;\n  byte *pbStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uint **local_48;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000f5568;\n  local_30 = (uint *)0x0;\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }\n  if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }\n  cVar20 = (char)param_4;\n  if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }\nLAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar26 = FUN_00062ed8;\n  puVar7 = local_2c;\n  puVar25 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar16 = *(undefined4 **)(puVar25 + 0x92690);\n  puStack_74 = puVar1;\n  ppuStack_70 = param_5;\n  piStack_84 = (int *)*puVar16;\n  pbVar9 = param_2;\n  pbVar11 = pbVar10;\n  uStack_7c = uVar2;\n  pbStack_78 = pbVar15;\n  pbStack_6c = param_4;\n  pbStack_68 = pbVar21;\n  pbStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar26;\n  if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  uVar2 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x92668);\n  piVar8 = piStack_84;\n  (*pcVar26)();\n  pcVar26 = pcVar26 + 0x99ef4;\n  if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }\n  if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }\n  if (*piVar8 < 1) {\n    return 0;\n  }\n  iVar3 = piVar8[1];\n  uVar12 = *(undefined4 *)(pbVar9 + 4);\n  if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}" (type_identifier "uint") (function_declarator "FUN_0006290c(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)" (identifier "FUN_0006290c") (parameter_list "(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "byte *param_4" (type_identifier "byte") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint **param_5" (type_identifier "uint") (pointer_declarator "**param_5" (* "*") (pointer_declarator "*param_5" (* "*") (identifier "param_5")))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  byte bVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  byte *pbVar15;\n  undefined4 *puVar16;\n  int *piVar17;\n  uint uVar18;\n  char cVar20;\n  int iVar19;\n  byte *pbVar21;\n  byte *unaff_s6;\n  uint uVar22;\n  int iVar23;\n  int unaff_s7;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  byte *pbStack_88;\n  int *piStack_84;\n  uint uStack_7c;\n  byte *pbStack_78;\n  undefined *puStack_74;\n  uint **ppuStack_70;\n  byte *pbStack_6c;\n  byte *pbStack_68;\n  byte *pbStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uint **local_48;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000f5568;\n  local_30 = (uint *)0x0;\n  local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;\n  for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }\n  if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }\n  cVar20 = (char)param_4;\n  if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }\nLAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar26 = FUN_00062ed8;\n  puVar7 = local_2c;\n  puVar25 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puVar16 = *(undefined4 **)(puVar25 + 0x92690);\n  puStack_74 = puVar1;\n  ppuStack_70 = param_5;\n  piStack_84 = (int *)*puVar16;\n  pbVar9 = param_2;\n  pbVar11 = pbVar10;\n  uStack_7c = uVar2;\n  pbStack_78 = pbVar15;\n  pbStack_6c = param_4;\n  pbStack_68 = pbVar21;\n  pbStack_64 = unaff_s6;\n  iStack_60 = unaff_s7;\n  pcStack_5c = pcVar26;\n  if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }\nLAB_00062fb4:\n  uVar2 = 2;\nLAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x92668);\n  piVar8 = piStack_84;\n  (*pcVar26)();\n  pcVar26 = pcVar26 + 0x99ef4;\n  if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }\n  if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }\n  if (*piVar8 < 1) {\n    return 0;\n  }\n  iVar3 = piVar8[1];\n  uVar12 = *(undefined4 *)(pbVar9 + 4);\n  if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }\n  return 1;\ncode_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }\n  goto LAB_00062fb4;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "char cVar20;" (primitive_type "char") (identifier "cVar20") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "byte *unaff_s6;" (type_identifier "byte") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int unaff_s7;" (primitive_type "int") (identifier "unaff_s7") (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "undefined *puVar25;" (type_identifier "undefined") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "code *pcVar26;" (type_identifier "code") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (declaration "byte *pbStack_88;" (type_identifier "byte") (pointer_declarator "*pbStack_88" (* "*") (identifier "pbStack_88")) (; ";")) (declaration "int *piStack_84;" (primitive_type "int") (pointer_declarator "*piStack_84" (* "*") (identifier "piStack_84")) (; ";")) (declaration "uint uStack_7c;" (type_identifier "uint") (identifier "uStack_7c") (; ";")) (declaration "byte *pbStack_78;" (type_identifier "byte") (pointer_declarator "*pbStack_78" (* "*") (identifier "pbStack_78")) (; ";")) (declaration "undefined *puStack_74;" (type_identifier "undefined") (pointer_declarator "*puStack_74" (* "*") (identifier "puStack_74")) (; ";")) (declaration "uint **ppuStack_70;" (type_identifier "uint") (pointer_declarator "**ppuStack_70" (* "*") (pointer_declarator "*ppuStack_70" (* "*") (identifier "ppuStack_70"))) (; ";")) (declaration "byte *pbStack_6c;" (type_identifier "byte") (pointer_declarator "*pbStack_6c" (* "*") (identifier "pbStack_6c")) (; ";")) (declaration "byte *pbStack_68;" (type_identifier "byte") (pointer_declarator "*pbStack_68" (* "*") (identifier "pbStack_68")) (; ";")) (declaration "byte *pbStack_64;" (type_identifier "byte") (pointer_declarator "*pbStack_64" (* "*") (identifier "pbStack_64")) (; ";")) (declaration "int iStack_60;" (primitive_type "int") (identifier "iStack_60") (; ";")) (declaration "code *pcStack_5c;" (type_identifier "code") (pointer_declarator "*pcStack_5c" (* "*") (identifier "pcStack_5c")) (; ";")) (declaration "uint **local_48;" (type_identifier "uint") (pointer_declarator "**local_48" (* "*") (pointer_declarator "*local_48" (* "*") (identifier "local_48"))) (; ";")) (declaration "uint *local_30;" (type_identifier "uint") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "undefined4 *local_2c;" (type_identifier "undefined4") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000f5568" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_000f5568")) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568" (identifier "local_2c") (= "=") (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")))) (; ";")) (for_statement "for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));\n      pbVar15 = *(byte **)(pbVar15 + 0xc)) {\n  }" (for "for") (( "(") (assignment_expression "pbVar15 = param_2" (identifier "pbVar15") (= "=") (identifier "param_2")) (; ";") (parenthesized_expression "(bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2))" (( "(") (comma_expression "bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2)" (assignment_expression "bVar14 = *pbVar15" (identifier "bVar14") (= "=") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15"))) (, ",") (binary_expression "bVar14 == 0xab || (bVar14 == 0xb2)" (binary_expression "bVar14 == 0xab" (identifier "bVar14") (== "==") (number_literal "0xab")) (|| "||") (parenthesized_expression "(bVar14 == 0xb2)" (( "(") (binary_expression "bVar14 == 0xb2" (identifier "bVar14") (== "==") (number_literal "0xb2")) () ")")))) () ")")) (; ";") (assignment_expression "pbVar15 = *(byte **)(pbVar15 + 0xc)" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)(pbVar15 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar15 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar15 + 0xc)" (( "(") (binary_expression "pbVar15 + 0xc" (identifier "pbVar15") (+ "+") (number_literal "0xc")) () ")"))))) () ")") (compound_statement "{\n  }" ({ "{") (} "}"))) (if_statement "if (bVar14 == 0xad) {\n    bVar14 = pbVar15[2];\n  }" (if "if") (parenthesized_expression "(bVar14 == 0xad)" (( "(") (binary_expression "bVar14 == 0xad" (identifier "bVar14") (== "==") (number_literal "0xad")) () ")")) (compound_statement "{\n    bVar14 = pbVar15[2];\n  }" ({ "{") (expression_statement "bVar14 = pbVar15[2];" (assignment_expression "bVar14 = pbVar15[2]" (identifier "bVar14") (= "=") (subscript_expression "pbVar15[2]" (identifier "pbVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (expression_statement "cVar20 = (char)param_4;" (assignment_expression "cVar20 = (char)param_4" (identifier "cVar20") (= "=") (cast_expression "(char)param_4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_4"))) (; ";")) (if_statement "if (bVar14 == 0x24) {\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }\n  else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }" (if "if") (parenthesized_expression "(bVar14 == 0x24)" (( "(") (binary_expression "bVar14 == 0x24" (identifier "bVar14") (== "==") (number_literal "0x24")) () ")")) (compound_statement "{\n    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);\n    pbVar21 = (byte *)(uVar2 & 0xff);\n    param_2 = *(byte **)(pbVar15 + 0xc);\n    local_48 = param_5;\n    pbVar13 = pbVar21;\n    uVar2 = FUN_0006290c(param_1);\n    pbVar10 = param_3;\n    if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }\n  }" ({ "{") (expression_statement "uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);" (assignment_expression "uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0)" (identifier "uVar2") (= "=") (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x4c38))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x4c38)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x4c38)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + 0x4c38)" (( "(") (binary_expression "PTR_LAB_000f52c8 + 0x4c38" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "0x4c38")) () ")")))) () ")")) (argument_list "(*(undefined4 *)(pbVar15 + 8),0)" (( "(") (pointer_expression "*(undefined4 *)(pbVar15 + 8)" (* "*") (cast_expression "(undefined4 *)(pbVar15 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar15 + 8)" (( "(") (binary_expression "pbVar15 + 8" (identifier "pbVar15") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pbVar21 = (byte *)(uVar2 & 0xff);" (assignment_expression "pbVar21 = (byte *)(uVar2 & 0xff)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(uVar2 & 0xff)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar2 & 0xff)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")")))) (; ";")) (expression_statement "param_2 = *(byte **)(pbVar15 + 0xc);" (assignment_expression "param_2 = *(byte **)(pbVar15 + 0xc)" (identifier "param_2") (= "=") (pointer_expression "*(byte **)(pbVar15 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar15 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar15 + 0xc)" (( "(") (binary_expression "pbVar15 + 0xc" (identifier "pbVar15") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_48 = param_5;" (assignment_expression "local_48 = param_5" (identifier "local_48") (= "=") (identifier "param_5")) (; ";")) (expression_statement "pbVar13 = pbVar21;" (assignment_expression "pbVar13 = pbVar21" (identifier "pbVar13") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "uVar2 = FUN_0006290c(param_1);" (assignment_expression "uVar2 = FUN_0006290c(param_1)" (identifier "uVar2") (= "=") (call_expression "FUN_0006290c(param_1)" (identifier "FUN_0006290c") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pbVar10 = param_3;" (assignment_expression "pbVar10 = param_3" (identifier "pbVar10") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (*param_5 != (uint *)0x0) {\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }" (if "if") (parenthesized_expression "(*param_5 != (uint *)0x0)" (( "(") (binary_expression "*param_5 != (uint *)0x0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_0005095c(*param_5,pbVar21,1);\n      pbVar10 = (byte *)0x1;\n      param_2 = (byte *)(int)cVar20;\n      FUN_000519d4(*param_5);\n    }" ({ "{") (expression_statement "FUN_0005095c(*param_5,pbVar21,1);" (call_expression "FUN_0005095c(*param_5,pbVar21,1)" (identifier "FUN_0005095c") (argument_list "(*param_5,pbVar21,1)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) (, ",") (identifier "pbVar21") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "pbVar10 = (byte *)0x1;" (assignment_expression "pbVar10 = (byte *)0x1" (identifier "pbVar10") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "param_2 = (byte *)(int)cVar20;" (assignment_expression "param_2 = (byte *)(int)cVar20" (identifier "param_2") (= "=") (cast_expression "(byte *)(int)cVar20" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)cVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar20")))) (; ";")) (expression_statement "FUN_000519d4(*param_5);" (call_expression "FUN_000519d4(*param_5)" (identifier "FUN_000519d4") (argument_list "(*param_5)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }" (else "else") (compound_statement "{\n    pbVar10 = param_3;\n    pbVar13 = param_4;\n    pbVar21 = param_3;\n    if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }\n    *param_5 = puVar4;\n  }" ({ "{") (expression_statement "pbVar10 = param_3;" (assignment_expression "pbVar10 = param_3" (identifier "pbVar10") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" (identifier "pbVar13") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar21 = param_3;" (assignment_expression "pbVar21 = param_3" (identifier "pbVar21") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (bVar14 == 0xaa) {\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }\n    else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(bVar14 == 0xaa)" (( "(") (binary_expression "bVar14 == 0xaa" (identifier "bVar14") (== "==") (number_literal "0xaa")) () ")")) (compound_statement "{\n      pbVar15 = *(byte **)(pbVar15 + 0xc);\n      bVar14 = *pbVar15;\n      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }\nLAB_00062b54:\n      local_48 = &local_30;\n      param_2 = pbVar15;\n      iVar3 = FUN_0006290c(param_1);\n      puVar4 = local_30;\n      if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }\n    }" ({ "{") (expression_statement "pbVar15 = *(byte **)(pbVar15 + 0xc);" (assignment_expression "pbVar15 = *(byte **)(pbVar15 + 0xc)" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)(pbVar15 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar15 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar15 + 0xc)" (( "(") (binary_expression "pbVar15 + 0xc" (identifier "pbVar15") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "bVar14 = *pbVar15;" (assignment_expression "bVar14 = *pbVar15" (identifier "bVar14") (= "=") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15"))) (; ";")) (if_statement "if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }" (if "if") (parenthesized_expression "((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96))" (( "(") (binary_expression "(bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)" (parenthesized_expression "(bVar14 == 0x98)" (( "(") (binary_expression "bVar14 == 0x98" (identifier "bVar14") (== "==") (number_literal "0x98")) () ")")) (|| "||") (parenthesized_expression "(unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)" (( "(") (comma_expression "unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96" (assignment_expression "unaff_s6 = PTR_LAB_000f52cc" (identifier "unaff_s6") (= "=") (identifier "PTR_LAB_000f52cc")) (, ",") (binary_expression "bVar14 == 0x96" (identifier "bVar14") (== "==") (number_literal "0x96"))) () ")"))) () ")")) (compound_statement "{\n        unaff_s7 = -1;\n        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;\n        goto LAB_000629b8;\n      }" ({ "{") (expression_statement "unaff_s7 = -1;" (assignment_expression "unaff_s7 = -1" (identifier "unaff_s7") (= "=") (number_literal "-1")) (; ";")) (expression_statement "unaff_s6 = PTR_LAB_000f52cc + 0x74bc;" (assignment_expression "unaff_s6 = PTR_LAB_000f52cc + 0x74bc" (identifier "unaff_s6") (= "=") (binary_expression "PTR_LAB_000f52cc + 0x74bc" (identifier "PTR_LAB_000f52cc") (+ "+") (number_literal "0x74bc"))) (; ";")) (goto_statement "goto LAB_000629b8;" (goto "goto") (statement_identifier "LAB_000629b8") (; ";")) (} "}"))) (labeled_statement "LAB_00062b54:\n      local_48 = &local_30;" (statement_identifier "LAB_00062b54") (: ":") (expression_statement "local_48 = &local_30;" (assignment_expression "local_48 = &local_30" (identifier "local_48") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";"))) (expression_statement "param_2 = pbVar15;" (assignment_expression "param_2 = pbVar15" (identifier "param_2") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "iVar3 = FUN_0006290c(param_1);" (assignment_expression "iVar3 = FUN_0006290c(param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_0006290c(param_1)" (identifier "FUN_0006290c") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" (identifier "puVar4") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (iVar3 == 0) {\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }\n      else {\nLAB_00062a94:\n        uVar2 = 0;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar2 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }\n      }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }" (if "if") (parenthesized_expression "(local_30 != (uint *)0x0)" (( "(") (binary_expression "local_30 != (uint *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52ec + -0x4950))();\n          if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (byte *)(int)cVar20;\n          pbVar10 = param_3;\n          FUN_000519d4();\n          puVar4 = local_30;\n        }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x4950))();" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x4950))()" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x4950))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x4950)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + -0x4950)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + -0x4950)" (( "(") (binary_expression "PTR_LAB_000f52ec + -0x4950" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "-0x4950")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((*(ushort *)(local_30 + 2) & 8) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" (if "if") (parenthesized_expression "((*(ushort *)(local_30 + 2) & 8) == 0)" (( "(") (binary_expression "(*(ushort *)(local_30 + 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(local_30 + 2) & 8)" (( "(") (binary_expression "*(ushort *)(local_30 + 2) & 8" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }\n          }" ({ "{") (if_statement "if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }\n            else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }" (if "if") (parenthesized_expression "((*local_30 == 0x80000000) && (local_30[1] == 0))" (( "(") (binary_expression "(*local_30 == 0x80000000) && (local_30[1] == 0)" (parenthesized_expression "(*local_30 == 0x80000000)" (( "(") (binary_expression "*local_30 == 0x80000000" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (== "==") (number_literal "0x80000000")) () ")")) (&& "&&") (parenthesized_expression "(local_30[1] == 0)" (( "(") (binary_expression "local_30[1] == 0" (subscript_expression "local_30[1]" (identifier "local_30") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;\n              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);\n            }" ({ "{") (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "*(ushort *)(local_30 + 2) & 0x3e40 | 8" (binary_expression "*(ushort *)(local_30 + 2) & 0x3e40" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (& "&") (number_literal "0x3e40")) (| "|") (number_literal "8"))) (; ";")) (expression_statement "*(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);" (assignment_expression "*(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0)" (pointer_expression "*(longlong *)local_30" (* "*") (cast_expression "(longlong *)local_30" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30"))) (= "=") (pointer_expression "*(longlong *)(PTR_DAT_000f52d4 + 0x26d0)" (* "*") (cast_expression "(longlong *)(PTR_DAT_000f52d4 + 0x26d0)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000f52d4 + 0x26d0)" (( "(") (binary_expression "PTR_DAT_000f52d4 + 0x26d0" (identifier "PTR_DAT_000f52d4") (+ "+") (number_literal "0x26d0")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }" (else "else") (compound_statement "{\n              uVar18 = -local_30[1];\n              local_30[1] = uVar18;\n              *local_30 = -(uint)(uVar18 != 0) - *local_30;\n            }" ({ "{") (expression_statement "uVar18 = -local_30[1];" (assignment_expression "uVar18 = -local_30[1]" (identifier "uVar18") (= "=") (unary_expression "-local_30[1]" (- "-") (subscript_expression "local_30[1]" (identifier "local_30") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_30[1] = uVar18;" (assignment_expression "local_30[1] = uVar18" (subscript_expression "local_30[1]" (identifier "local_30") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "*local_30 = -(uint)(uVar18 != 0) - *local_30;" (assignment_expression "*local_30 = -(uint)(uVar18 != 0) - *local_30" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (= "=") (binary_expression "-(uint)(uVar18 != 0) - *local_30" (unary_expression "-(uint)(uVar18 != 0)" (- "-") (call_expression "(uint)(uVar18 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar18 != 0)" (( "(") (binary_expression "uVar18 != 0" (identifier "uVar18") (!= "!=") (number_literal "0")) () ")")))) (- "-") (pointer_expression "*local_30" (* "*") (identifier "local_30")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" (else "else") (compound_statement "{\n            *local_30 = *local_30 ^ 0x80000000;\n          }" ({ "{") (expression_statement "*local_30 = *local_30 ^ 0x80000000;" (assignment_expression "*local_30 = *local_30 ^ 0x80000000" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (= "=") (binary_expression "*local_30 ^ 0x80000000" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (^ "^") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "param_2 = (byte *)(int)cVar20;" (assignment_expression "param_2 = (byte *)(int)cVar20" (identifier "param_2") (= "=") (cast_expression "(byte *)(int)cVar20" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)cVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar20")))) (; ";")) (expression_statement "pbVar10 = param_3;" (assignment_expression "pbVar10 = param_3" (identifier "pbVar10") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_000519d4();" (call_expression "FUN_000519d4()" (identifier "FUN_000519d4") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" (identifier "puVar4") (= "=") (identifier "local_30")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00062a94:\n        uVar2 = 0;\n      }" (else "else") (compound_statement "{\nLAB_00062a94:\n        uVar2 = 0;\n      }" ({ "{") (labeled_statement "LAB_00062a94:\n        uVar2 = 0;" (statement_identifier "LAB_00062a94") (: ":") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";"))) (} "}")))) (} "}")) (else_clause "else {\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      unaff_s7 = 1;\n      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;\nLAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }\n    }" ({ "{") (expression_statement "unaff_s7 = 1;" (assignment_expression "unaff_s7 = 1" (identifier "unaff_s7") (= "=") (number_literal "1")) (; ";")) (expression_statement "unaff_s6 = PTR_DAT_000f52d4 + -0x543c;" (assignment_expression "unaff_s6 = PTR_DAT_000f52d4 + -0x543c" (identifier "unaff_s6") (= "=") (binary_expression "PTR_DAT_000f52d4 + -0x543c" (identifier "PTR_DAT_000f52d4") (+ "+") (number_literal "-0x543c"))) (; ";")) (labeled_statement "LAB_000629b8:\n      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" (statement_identifier "LAB_000629b8") (: ":") (if_statement "if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }\n      else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "(((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98))" (( "(") (binary_expression "((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)" (parenthesized_expression "((bVar14 == 0x73) || (bVar14 == 0x96))" (( "(") (binary_expression "(bVar14 == 0x73) || (bVar14 == 0x96)" (parenthesized_expression "(bVar14 == 0x73)" (( "(") (binary_expression "bVar14 == 0x73" (identifier "bVar14") (== "==") (number_literal "0x73")) () ")")) (|| "||") (parenthesized_expression "(bVar14 == 0x96)" (( "(") (binary_expression "bVar14 == 0x96" (identifier "bVar14") (== "==") (number_literal "0x96")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(bVar14 == 0x98)" (( "(") (binary_expression "bVar14 == 0x98" (identifier "bVar14") (== "==") (number_literal "0x98")) () ")"))) () ")")) (compound_statement "{\n        pbVar13 = (byte *)0x28;\n        pbVar10 = (byte *)0x0;\n        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n        if (local_30 == (uint *)0x0) goto LAB_00062b00;\n        uVar2 = *(uint *)(pbVar15 + 4);\n        local_30[8] = param_1;\n        *(undefined2 *)(local_30 + 2) = 1;\n        if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }\n        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }\n        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }\n        uVar2 = 0;\n        puVar4 = local_30;\n        if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }\n      }" ({ "{") (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x28" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x28"))) (; ";")) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" (identifier "pbVar10") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (identifier "local_30") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x7020" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x7020")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (local_30 == (uint *)0x0) goto LAB_00062b00;" (if "if") (parenthesized_expression "(local_30 == (uint *)0x0)" (( "(") (binary_expression "local_30 == (uint *)0x0" (identifier "local_30") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00062b00;" (goto "goto") (statement_identifier "LAB_00062b00") (; ";"))) (expression_statement "uVar2 = *(uint *)(pbVar15 + 4);" (assignment_expression "uVar2 = *(uint *)(pbVar15 + 4)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(pbVar15 + 4)" (* "*") (cast_expression "(uint *)(pbVar15 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar15 + 4)" (( "(") (binary_expression "pbVar15 + 4" (identifier "pbVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_30[8] = param_1;" (assignment_expression "local_30[8] = param_1" (subscript_expression "local_30[8]" (identifier "local_30") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined2 *)(local_30 + 2) = 1;" (assignment_expression "*(undefined2 *)(local_30 + 2) = 1" (pointer_expression "*(undefined2 *)(local_30 + 2)" (* "*") (cast_expression "(undefined2 *)(local_30 + 2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if ((uVar2 & 0x400) == 0) {\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }\n        else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }" (if "if") (parenthesized_expression "((uVar2 & 0x400) == 0)" (( "(") (binary_expression "(uVar2 & 0x400) == 0" (parenthesized_expression "(uVar2 & 0x400)" (( "(") (binary_expression "uVar2 & 0x400" (identifier "uVar2") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar13 = *(byte **)(pbVar15 + 8);\n          param_2 = PTR_DAT_000f52d4 + -0x7ff4;\n          pbVar10 = unaff_s6;\n          iVar3 = FUN_0004d30c(param_1);\n          if (iVar3 == 0) goto LAB_00062b04;\n          if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }\n        }" ({ "{") (expression_statement "pbVar13 = *(byte **)(pbVar15 + 8);" (assignment_expression "pbVar13 = *(byte **)(pbVar15 + 8)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(pbVar15 + 8)" (* "*") (cast_expression "(byte **)(pbVar15 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar15 + 8)" (( "(") (binary_expression "pbVar15 + 8" (identifier "pbVar15") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "param_2 = PTR_DAT_000f52d4 + -0x7ff4;" (assignment_expression "param_2 = PTR_DAT_000f52d4 + -0x7ff4" (identifier "param_2") (= "=") (binary_expression "PTR_DAT_000f52d4 + -0x7ff4" (identifier "PTR_DAT_000f52d4") (+ "+") (number_literal "-0x7ff4"))) (; ";")) (expression_statement "pbVar10 = unaff_s6;" (assignment_expression "pbVar10 = unaff_s6" (identifier "pbVar10") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "iVar3 = FUN_0004d30c(param_1);" (assignment_expression "iVar3 = FUN_0004d30c(param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_0004d30c(param_1)" (identifier "FUN_0004d30c") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00062b04;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062b04;" (goto "goto") (statement_identifier "LAB_00062b04") (; ";"))) (if_statement "if (local_30 != (uint *)0x0) {\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }" (if "if") (parenthesized_expression "(local_30 != (uint *)0x0)" (( "(") (binary_expression "local_30 != (uint *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pbVar13 = (byte *)0x1;\n            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n            FUN_0005b00c(local_30,iVar3,0xffffffff);\n          }" ({ "{") (expression_statement "pbVar13 = (byte *)0x1;" (assignment_expression "pbVar13 = (byte *)0x1" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);" (assignment_expression "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4)" (identifier "local_48") (= "=") (cast_expression "(uint **)(PTR_LAB_000f52ec + 0x67f4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x67f4)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x67f4" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x67f4")) () ")")))) (; ";")) (expression_statement "FUN_0005b00c(local_30,iVar3,0xffffffff);" (call_expression "FUN_0005b00c(local_30,iVar3,0xffffffff)" (identifier "FUN_0005b00c") (argument_list "(local_30,iVar3,0xffffffff)" (( "(") (identifier "local_30") (, ",") (identifier "iVar3") (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }" (else "else") (compound_statement "{\n          iVar3 = *(int *)(pbVar15 + 8);\n          *(undefined2 *)(local_30 + 2) = 4;\n          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;\n        }" ({ "{") (expression_statement "iVar3 = *(int *)(pbVar15 + 8);" (assignment_expression "iVar3 = *(int *)(pbVar15 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pbVar15 + 8)" (* "*") (cast_expression "(int *)(pbVar15 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar15 + 8)" (( "(") (binary_expression "pbVar15 + 8" (identifier "pbVar15") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined2 *)(local_30 + 2) = 4;" (assignment_expression "*(undefined2 *)(local_30 + 2) = 4" (pointer_expression "*(undefined2 *)(local_30 + 2)" (* "*") (cast_expression "(undefined2 *)(local_30 + 2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;" (assignment_expression "*(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7" (pointer_expression "*(longlong *)local_30" (* "*") (cast_expression "(longlong *)local_30" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30"))) (= "=") (binary_expression "(longlong)iVar3 * (longlong)unaff_s7" (cast_expression "(longlong)iVar3" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "iVar3")) (* "*") (cast_expression "(longlong)unaff_s7" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "unaff_s7")))) (; ";")) (} "}")))) (if_statement "if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }\n        else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }" (if "if") (parenthesized_expression "(((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41))" (( "(") (binary_expression "((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)" (parenthesized_expression "((bVar14 == 0x98) || (bVar14 == 0x96))" (( "(") (binary_expression "(bVar14 == 0x98) || (bVar14 == 0x96)" (parenthesized_expression "(bVar14 == 0x98)" (( "(") (binary_expression "bVar14 == 0x98" (identifier "bVar14") (== "==") (number_literal "0x98")) () ")")) (|| "||") (parenthesized_expression "(bVar14 == 0x96)" (( "(") (binary_expression "bVar14 == 0x96" (identifier "bVar14") (== "==") (number_literal "0x96")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_4 == (byte *)0x41)" (( "(") (binary_expression "param_4 == (byte *)0x41" (identifier "param_4") (== "==") (cast_expression "(byte *)0x41" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x41"))) () ")"))) () ")")) (compound_statement "{\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)0x43;\n          FUN_000519d4(local_30);\n        }" ({ "{") (expression_statement "pbVar10 = (byte *)0x1;" (assignment_expression "pbVar10 = (byte *)0x1" (identifier "pbVar10") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "param_2 = (byte *)0x43;" (assignment_expression "param_2 = (byte *)0x43" (identifier "param_2") (= "=") (cast_expression "(byte *)0x43" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x43"))) (; ";")) (expression_statement "FUN_000519d4(local_30);" (call_expression "FUN_000519d4(local_30)" (identifier "FUN_000519d4") (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }" (else "else") (compound_statement "{\n          pbVar10 = (byte *)0x1;\n          param_2 = (byte *)(int)cVar20;\n          FUN_000519d4(local_30);\n        }" ({ "{") (expression_statement "pbVar10 = (byte *)0x1;" (assignment_expression "pbVar10 = (byte *)0x1" (identifier "pbVar10") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "param_2 = (byte *)(int)cVar20;" (assignment_expression "param_2 = (byte *)(int)cVar20" (identifier "param_2") (= "=") (cast_expression "(byte *)(int)cVar20" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)cVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar20")))) (; ";")) (expression_statement "FUN_000519d4(local_30);" (call_expression "FUN_000519d4(local_30)" (identifier "FUN_000519d4") (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (} "}")))) (if_statement "if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }" (if "if") (parenthesized_expression "((*(ushort *)(local_30 + 2) & 0x2c) != 0)" (( "(") (binary_expression "(*(ushort *)(local_30 + 2) & 0x2c) != 0" (parenthesized_expression "(*(ushort *)(local_30 + 2) & 0x2c)" (( "(") (binary_expression "*(ushort *)(local_30 + 2) & 0x2c" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (& "&") (number_literal "0x2c")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n        }" ({ "{") (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "*(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (& "&") (number_literal "0xfffd"))) (; ";")) (} "}"))) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" (identifier "puVar4") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (param_3 != (byte *)0x1) {\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }" (if "if") (parenthesized_expression "(param_3 != (byte *)0x1)" (( "(") (binary_expression "param_3 != (byte *)0x1" (identifier "param_3") (!= "!=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;\n          param_2 = param_3;\n          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();\n          puVar4 = local_30;\n        }" ({ "{") (if_statement "if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;" (if "if") (parenthesized_expression "((local_30[2] & 0x20000) == 0)" (( "(") (binary_expression "(local_30[2] & 0x20000) == 0" (parenthesized_expression "(local_30[2] & 0x20000)" (( "(") (binary_expression "local_30[2] & 0x20000" (subscript_expression "local_30[2]" (identifier "local_30") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0x20000")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062a94;" (goto "goto") (statement_identifier "LAB_00062a94") (; ";"))) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" (identifier "param_2") (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();" (assignment_expression "uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))()" (identifier "uVar2") (= "=") (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4b48))()" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4b48))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4b48)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4b48)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4b48)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x4b48" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x4b48")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" (identifier "puVar4") (= "=") (identifier "local_30")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" (else "else") (compound_statement "{\n        if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }\n        if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }\n      }" ({ "{") (if_statement "if (bVar14 == 0xaa) {\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }" (if "if") (parenthesized_expression "(bVar14 == 0xaa)" (( "(") (binary_expression "bVar14 == 0xaa" (identifier "bVar14") (== "==") (number_literal "0xaa")) () ")")) (compound_statement "{\n          pbVar15 = *(byte **)(pbVar15 + 0xc);\n          goto LAB_00062b54;\n        }" ({ "{") (expression_statement "pbVar15 = *(byte **)(pbVar15 + 0xc);" (assignment_expression "pbVar15 = *(byte **)(pbVar15 + 0xc)" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)(pbVar15 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar15 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar15 + 0xc)" (( "(") (binary_expression "pbVar15 + 0xc" (identifier "pbVar15") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_00062b54;" (goto "goto") (statement_identifier "LAB_00062b54") (; ";")) (} "}"))) (if_statement "if (bVar14 == 0x77) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }\n        else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" (if "if") (parenthesized_expression "(bVar14 == 0x77)" (( "(") (binary_expression "bVar14 == 0x77" (identifier "bVar14") (== "==") (number_literal "0x77")) () ")")) (compound_statement "{\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 1;\n        }" ({ "{") (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x28" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x28"))) (; ";")) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" (identifier "pbVar10") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x7020" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x7020")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (puVar4 == (uint *)0x0) {\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }" (if "if") (parenthesized_expression "(puVar4 == (uint *)0x0)" (( "(") (binary_expression "puVar4 == (uint *)0x0" (identifier "puVar4") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00062b00:\n            local_30 = (uint *)0x0;\nLAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }\n            uVar2 = 7;\n            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);\n            goto LAB_00062a9c;\n          }" ({ "{") (labeled_statement "LAB_00062b00:\n            local_30 = (uint *)0x0;" (statement_identifier "LAB_00062b00") (: ":") (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (labeled_statement "LAB_00062b04:\n            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }" (statement_identifier "LAB_00062b04") (: ":") (if_statement "if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x50) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x50) & 0xffff00)" (( "(") (binary_expression "*(uint *)(param_1 + 0x50) & 0xffff00" (pointer_expression "*(uint *)(param_1 + 0x50)" (* "*") (cast_expression "(uint *)(param_1 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (& "&") (number_literal "0xffff00")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);\n            }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x67b4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x67b4)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x67b4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x67b4)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x67b4" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x67b4")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar2 = 7;" (assignment_expression "uVar2 = 7" (identifier "uVar2") (= "=") (number_literal "7")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x6be0))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x6be0)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + -0x6be0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + -0x6be0)" (( "(") (binary_expression "PTR_LAB_000f52ec + -0x6be0" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "-0x6be0")) () ")")))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (goto_statement "goto LAB_00062a9c;" (goto "goto") (statement_identifier "LAB_00062a9c") (; ";")) (} "}"))) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar4 + 2) = 1;" (assignment_expression "*(undefined2 *)(puVar4 + 2) = 1" (pointer_expression "*(undefined2 *)(puVar4 + 2)" (* "*") (cast_expression "(undefined2 *)(puVar4 + 2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" (else "else") (if_statement "if (bVar14 == 0x97) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }\n        else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" (if "if") (parenthesized_expression "(bVar14 == 0x97)" (( "(") (binary_expression "bVar14 == 0x97" (identifier "bVar14") (== "==") (number_literal "0x97")) () ")")) (compound_statement "{\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062b00;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          iVar3 = iVar3 + 2;\n          *(undefined2 *)(puVar4 + 2) = 1;\n          local_30 = puVar4;\n          if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }\n          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);\n          pbVar13 = (byte *)0x0;\n          uVar2 = 0;\n          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);\n          pbVar10 = pbVar15;\n          FUN_0005b00c(puVar4);\n          puVar4 = local_30;\n        }" ({ "{") (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x28" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x28"))) (; ";")) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" (identifier "pbVar10") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x7020" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x7020")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (puVar4 == (uint *)0x0) goto LAB_00062b00;" (if "if") (parenthesized_expression "(puVar4 == (uint *)0x0)" (( "(") (binary_expression "puVar4 == (uint *)0x0" (identifier "puVar4") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00062b00;" (goto "goto") (statement_identifier "LAB_00062b00") (; ";"))) (expression_statement "iVar3 = *(int *)(pbVar15 + 8);" (assignment_expression "iVar3 = *(int *)(pbVar15 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pbVar15 + 8)" (* "*") (cast_expression "(int *)(pbVar15 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar15 + 8)" (( "(") (binary_expression "pbVar15 + 8" (identifier "pbVar15") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar3 = iVar3 + 2;" (assignment_expression "iVar3 = iVar3 + 2" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 2" (identifier "iVar3") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*(undefined2 *)(puVar4 + 2) = 1;" (assignment_expression "*(undefined2 *)(puVar4 + 2) = 1" (pointer_expression "*(undefined2 *)(puVar4 + 2)" (* "*") (cast_expression "(undefined2 *)(puVar4 + 2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_30 = puVar4;" (assignment_expression "local_30 = puVar4" (identifier "local_30") (= "=") (identifier "puVar4")) (; ";")) (if_statement "if (iVar3 == 0) {\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }\n          else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pbVar15 = (byte *)0x0;\n            iVar19 = -1;\n          }" ({ "{") (expression_statement "pbVar15 = (byte *)0x0;" (assignment_expression "pbVar15 = (byte *)0x0" (identifier "pbVar15") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" (identifier "iVar19") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }" (else "else") (compound_statement "{\n            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);\n            iVar19 = (uVar2 & 0x3fffffff) - 1;\n            pbVar15 = (byte *)(iVar19 / 2);\n          }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);" (assignment_expression "uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_strlen_000f5488)(iVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000f5488)" (( "(") (pointer_expression "*(code *)PTR_strlen_000f5488" (* "*") (cast_expression "(code *)PTR_strlen_000f5488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000f5488"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "iVar19 = (uVar2 & 0x3fffffff) - 1;" (assignment_expression "iVar19 = (uVar2 & 0x3fffffff) - 1" (identifier "iVar19") (= "=") (binary_expression "(uVar2 & 0x3fffffff) - 1" (parenthesized_expression "(uVar2 & 0x3fffffff)" (( "(") (binary_expression "uVar2 & 0x3fffffff" (identifier "uVar2") (& "&") (number_literal "0x3fffffff")) () ")")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = (byte *)(iVar19 / 2);" (assignment_expression "pbVar15 = (byte *)(iVar19 / 2)" (identifier "pbVar15") (= "=") (cast_expression "(byte *)(iVar19 / 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 / 2)" (( "(") (binary_expression "iVar19 / 2" (identifier "iVar19") (/ "/") (number_literal "2")) () ")")))) (; ";")) (} "}")))) (expression_statement "param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);" (assignment_expression "param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19)" (identifier "param_2") (= "=") (cast_expression "(byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7d5c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7d5c)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7d5c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x7d5c)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x7d5c" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x7d5c")) () ")")))) () ")")) (argument_list "(param_1,iVar3,iVar19)" (( "(") (identifier "param_1") (, ",") (identifier "iVar3") (, ",") (identifier "iVar19") () ")"))))) (; ";")) (expression_statement "pbVar13 = (byte *)0x0;" (assignment_expression "pbVar13 = (byte *)0x0" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);" (assignment_expression "local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4)" (identifier "local_48") (= "=") (cast_expression "(uint **)(PTR_LAB_000f52ec + 0x67f4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x67f4)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x67f4" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x67f4")) () ")")))) (; ";")) (expression_statement "pbVar10 = pbVar15;" (assignment_expression "pbVar10 = pbVar15" (identifier "pbVar10") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "FUN_0005b00c(puVar4);" (call_expression "FUN_0005b00c(puVar4)" (identifier "FUN_0005b00c") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" (identifier "puVar4") (= "=") (identifier "local_30")) (; ";")) (} "}")) (else_clause "else if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" (else "else") (if_statement "if (bVar14 == 0xa7) {\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }\n        else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" (if "if") (parenthesized_expression "(bVar14 == 0xa7)" (( "(") (binary_expression "bVar14 == 0xa7" (identifier "bVar14") (== "==") (number_literal "0xa7")) () ")")) (compound_statement "{\n          pbVar13 = (byte *)0x28;\n          pbVar10 = (byte *)0x0;\n          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);\n          if (puVar4 == (uint *)0x0) goto LAB_00062a94;\n          iVar3 = *(int *)(pbVar15 + 8);\n          puVar4[8] = param_1;\n          uVar2 = 0;\n          *(undefined2 *)(puVar4 + 2) = 4;\n          cVar20 = *(char *)(iVar3 + 4);\n          *puVar4 = 0;\n          puVar4[1] = (uint)(cVar20 == '\0');\n        }" ({ "{") (expression_statement "pbVar13 = (byte *)0x28;" (assignment_expression "pbVar13 = (byte *)0x28" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x28" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x28"))) (; ";")) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" (identifier "pbVar10") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7020))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7020)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7020)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x7020)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x7020" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x7020")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (puVar4 == (uint *)0x0) goto LAB_00062a94;" (if "if") (parenthesized_expression "(puVar4 == (uint *)0x0)" (( "(") (binary_expression "puVar4 == (uint *)0x0" (identifier "puVar4") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00062a94;" (goto "goto") (statement_identifier "LAB_00062a94") (; ";"))) (expression_statement "iVar3 = *(int *)(pbVar15 + 8);" (assignment_expression "iVar3 = *(int *)(pbVar15 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pbVar15 + 8)" (* "*") (cast_expression "(int *)(pbVar15 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar15 + 8)" (( "(") (binary_expression "pbVar15 + 8" (identifier "pbVar15") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar4 + 2) = 4;" (assignment_expression "*(undefined2 *)(puVar4 + 2) = 4" (pointer_expression "*(undefined2 *)(puVar4 + 2)" (* "*") (cast_expression "(undefined2 *)(puVar4 + 2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "cVar20 = *(char *)(iVar3 + 4);" (assignment_expression "cVar20 = *(char *)(iVar3 + 4)" (identifier "cVar20") (= "=") (pointer_expression "*(char *)(iVar3 + 4)" (* "*") (cast_expression "(char *)(iVar3 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[1] = (uint)(cVar20 == '\0');" (assignment_expression "puVar4[1] = (uint)(cVar20 == '\0')" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (call_expression "(uint)(cVar20 == '\0')" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(cVar20 == '\0')" (( "(") (binary_expression "cVar20 == '\0'" (identifier "cVar20") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" (else "else") (compound_statement "{\n          uVar2 = 0;\n          puVar4 = (uint *)0x0;\n        }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = (uint *)0x0;" (assignment_expression "puVar4 = (uint *)0x0" (identifier "puVar4") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))))))) (} "}"))))) (} "}")))) (expression_statement "*param_5 = puVar4;" (assignment_expression "*param_5 = puVar4" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "puVar4")) (; ";")) (} "}")))) (labeled_statement "LAB_00062a9c:\n  if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }" (statement_identifier "LAB_00062a9c") (: ":") (if_statement "if (local_2c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(local_2c == *(undefined4 **)puVar1)" (( "(") (binary_expression "local_2c == *(undefined4 **)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(undefined4 **)puVar1" (* "*") (cast_expression "(undefined4 **)puVar1" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))) (expression_statement "pcVar26 = FUN_00062ed8;" (assignment_expression "pcVar26 = FUN_00062ed8" (identifier "pcVar26") (= "=") (identifier "FUN_00062ed8")) (; ";")) (expression_statement "puVar7 = local_2c;" (assignment_expression "puVar7 = local_2c" (identifier "puVar7") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar25 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar25 = PTR___stack_chk_fail_000f5540" (identifier "puVar25") (= "=") (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 "puVar16 = *(undefined4 **)(puVar25 + 0x92690);" (assignment_expression "puVar16 = *(undefined4 **)(puVar25 + 0x92690)" (identifier "puVar16") (= "=") (pointer_expression "*(undefined4 **)(puVar25 + 0x92690)" (* "*") (cast_expression "(undefined4 **)(puVar25 + 0x92690)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x92690)" (( "(") (binary_expression "puVar25 + 0x92690" (identifier "puVar25") (+ "+") (number_literal "0x92690")) () ")"))))) (; ";")) (expression_statement "puStack_74 = puVar1;" (assignment_expression "puStack_74 = puVar1" (identifier "puStack_74") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "ppuStack_70 = param_5;" (assignment_expression "ppuStack_70 = param_5" (identifier "ppuStack_70") (= "=") (identifier "param_5")) (; ";")) (expression_statement "piStack_84 = (int *)*puVar16;" (assignment_expression "piStack_84 = (int *)*puVar16" (identifier "piStack_84") (= "=") (cast_expression "(int *)*puVar16" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar16" (* "*") (identifier "puVar16")))) (; ";")) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" (identifier "pbVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" (identifier "pbVar11") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "uStack_7c = uVar2;" (assignment_expression "uStack_7c = uVar2" (identifier "uStack_7c") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "pbStack_78 = pbVar15;" (assignment_expression "pbStack_78 = pbVar15" (identifier "pbStack_78") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "pbStack_6c = param_4;" (assignment_expression "pbStack_6c = param_4" (identifier "pbStack_6c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbStack_68 = pbVar21;" (assignment_expression "pbStack_68 = pbVar21" (identifier "pbStack_68") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "pbStack_64 = unaff_s6;" (assignment_expression "pbStack_64 = unaff_s6" (identifier "pbStack_64") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "iStack_60 = unaff_s7;" (assignment_expression "iStack_60 = unaff_s7" (identifier "iStack_60") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pcStack_5c = pcVar26;" (assignment_expression "pcStack_5c = pcVar26" (identifier "pcStack_5c") (= "=") (identifier "pcVar26")) (; ";")) (if_statement "if (param_2 == (byte *)0x0) {\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }\n  else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x0)" (( "(") (binary_expression "param_2 == (byte *)0x0" (identifier "param_2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar2 = 0;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n  }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;" (if "if") (parenthesized_expression "(pbVar10 == (byte *)0x0)" (( "(") (binary_expression "pbVar10 == (byte *)0x0" (identifier "pbVar10") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00062fb8;" (goto "goto") (statement_identifier "LAB_00062fb8") (; ";"))) (} "}")) (else_clause "else {\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }" (else "else") (compound_statement "{\n    uVar2 = 2;\n    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;\n    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }\n    uVar24 = *(uint *)(param_2 + 4);\n    uVar18 = *(uint *)(pbVar10 + 4);\n    uVar22 = uVar24 | uVar18;\n    if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }\n    bVar14 = *param_2;\n    bVar6 = *pbVar10;\n    if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }\n    if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }\nLAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }\n  }" ({ "{") (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (; ";")) (if_statement "if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;" (if "if") (parenthesized_expression "(pbVar10 == (byte *)0x0)" (( "(") (binary_expression "pbVar10 == (byte *)0x0" (identifier "pbVar10") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00062fb8;" (goto "goto") (statement_identifier "LAB_00062fb8") (; ";"))) (if_statement "if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99))" (( "(") (binary_expression "(puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)" (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*param_2 == 0x99)" (( "(") (binary_expression "*param_2 == 0x99" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (number_literal "0x99")) () ")"))) () ")")) (compound_statement "{\n      pbVar11 = (byte *)0x1;\n      pbStack_88 = (byte *)0x0;\n      pbVar9 = pbVar10;\n      FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);\n      if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pbStack_88 = (byte *)0x0;" (assignment_expression "pbStack_88 = (byte *)0x0" (identifier "pbStack_88") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" (identifier "pbVar9") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88);" (call_expression "FUN_0006290c(*puVar7,pbVar10,1,0x41,&pbStack_88)" (identifier "FUN_0006290c") (argument_list "(*puVar7,pbVar10,1,0x41,&pbStack_88)" (( "(") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (identifier "pbVar10") (, ",") (number_literal "1") (, ",") (number_literal "0x41") (, ",") (pointer_expression "&pbStack_88" (& "&") (identifier "pbStack_88")) () ")"))) (; ";")) (if_statement "if (pbStack_88 != (byte *)0x0) {\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(pbStack_88 != (byte *)0x0)" (( "(") (binary_expression "pbStack_88 != (byte *)0x0" (identifier "pbStack_88") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);\n        iVar3 = puVar7[2];\n        if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }\n        iVar3 = FUN_00051a50(puVar7[0x38]);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }\n      }" ({ "{") (expression_statement "pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);" (assignment_expression "pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(int)*(short *)(param_2 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*(short *)(param_2 + 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(param_2 + 0x20)" (* "*") (cast_expression "(short *)(param_2 + 0x20)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")"))))))) (; ";")) (expression_statement "iVar3 = puVar7[2];" (assignment_expression "iVar3 = puVar7[2]" (identifier "iVar3") (= "=") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if ((int)pbVar9 < 0x20) {\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }\n        else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }" (if "if") (parenthesized_expression "((int)pbVar9 < 0x20)" (( "(") (binary_expression "(int)pbVar9 < 0x20" (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9")) (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n          pbVar11 = pbVar9 + -1;\n          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);\n        }" ({ "{") (expression_statement "pbVar11 = pbVar9 + -1;" (assignment_expression "pbVar11 = pbVar9 + -1" (identifier "pbVar11") (= "=") (binary_expression "pbVar9 + -1" (identifier "pbVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);" (assignment_expression "*(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0)" (pointer_expression "*(uint *)(iVar3 + 0xd0)" (* "*") (cast_expression "(uint *)(iVar3 + 0xd0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd0)" (( "(") (binary_expression "iVar3 + 0xd0" (identifier "iVar3") (+ "+") (number_literal "0xd0")) () ")")))) (= "=") (binary_expression "1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0)" (binary_expression "1 << ((uint)pbVar11 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)pbVar11 & 0x1f)" (( "(") (binary_expression "(uint)pbVar11 & 0x1f" (cast_expression "(uint)pbVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar11")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (pointer_expression "*(uint *)(iVar3 + 0xd0)" (* "*") (cast_expression "(uint *)(iVar3 + 0xd0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd0)" (( "(") (binary_expression "iVar3 + 0xd0" (identifier "iVar3") (+ "+") (number_literal "0xd0")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }" (else "else") (compound_statement "{\n          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;\n        }" ({ "{") (expression_statement "*(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;" (assignment_expression "*(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000" (pointer_expression "*(uint *)(iVar3 + 0xd0)" (* "*") (cast_expression "(uint *)(iVar3 + 0xd0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd0)" (( "(") (binary_expression "iVar3 + 0xd0" (identifier "iVar3") (+ "+") (number_literal "0xd0")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar3 + 0xd0) | 0x80000000" (pointer_expression "*(uint *)(iVar3 + 0xd0)" (* "*") (cast_expression "(uint *)(iVar3 + 0xd0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xd0)" (( "(") (binary_expression "iVar3 + 0xd0" (identifier "iVar3") (+ "+") (number_literal "0xd0")) () ")")))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "iVar3 = FUN_00051a50(puVar7[0x38]);" (assignment_expression "iVar3 = FUN_00051a50(puVar7[0x38])" (identifier "iVar3") (= "=") (call_expression "FUN_00051a50(puVar7[0x38])" (identifier "FUN_00051a50") (argument_list "(puVar7[0x38])" (( "(") (subscript_expression "puVar7[0x38]" (identifier "puVar7") ([ "[") (number_literal "0x38") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }\n        else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar3 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar3 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar3 + -0x6be0))(0);\n        }" ({ "{") (expression_statement "iVar3 = *(int *)(puVar25 + 0x92414);" (assignment_expression "iVar3 = *(int *)(puVar25 + 0x92414)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar25 + 0x92414)" (* "*") (cast_expression "(int *)(puVar25 + 0x92414)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x92414)" (( "(") (binary_expression "puVar25 + 0x92414" (identifier "puVar25") (+ "+") (number_literal "0x92414")) () ")"))))) (; ";")) (expression_statement "(*(code *)(iVar3 + -0x6be0))(pbStack_88);" (call_expression "(*(code *)(iVar3 + -0x6be0))(pbStack_88)" (parenthesized_expression "(*(code *)(iVar3 + -0x6be0))" (( "(") (pointer_expression "*(code *)(iVar3 + -0x6be0)" (* "*") (cast_expression "(code *)(iVar3 + -0x6be0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + -0x6be0)" (( "(") (binary_expression "iVar3 + -0x6be0" (identifier "iVar3") (+ "+") (number_literal "-0x6be0")) () ")")))) () ")")) (argument_list "(pbStack_88)" (( "(") (identifier "pbStack_88") () ")"))) (; ";")) (expression_statement "(*(code *)(iVar3 + -0x6be0))(0);" (call_expression "(*(code *)(iVar3 + -0x6be0))(0)" (parenthesized_expression "(*(code *)(iVar3 + -0x6be0))" (( "(") (pointer_expression "*(code *)(iVar3 + -0x6be0)" (* "*") (cast_expression "(code *)(iVar3 + -0x6be0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + -0x6be0)" (( "(") (binary_expression "iVar3 + -0x6be0" (identifier "iVar3") (+ "+") (number_literal "-0x6be0")) () ")")))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }" (else "else") (compound_statement "{\n          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);\n          if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }\n          pbVar11 = (byte *)0x0;\n          pbVar9 = pbStack_88;\n          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);\n          iVar23 = *(int *)(puVar25 + 0x92414);\n          (*(code *)(iVar23 + -0x6be0))(pbStack_88);\n          (*(code *)(iVar23 + -0x6be0))(iVar3);\n          if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }\n        }" ({ "{") (expression_statement "iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);" (assignment_expression "iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3)" (identifier "iVar19") (= "=") (call_expression "(**(code **)(puVar25 + 0x92614))(iVar3)" (parenthesized_expression "(**(code **)(puVar25 + 0x92614))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x92614)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x92614)" (* "*") (cast_expression "(code **)(puVar25 + 0x92614)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x92614)" (( "(") (binary_expression "puVar25 + 0x92614" (identifier "puVar25") (+ "+") (number_literal "0x92614")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar19 == 3) {\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }" (if "if") (parenthesized_expression "(iVar19 == 3)" (( "(") (binary_expression "iVar19 == 3" (identifier "iVar19") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n            (**(code **)(puVar25 + 0x924c4))(iVar3);\n          }" ({ "{") (expression_statement "(**(code **)(puVar25 + 0x924c4))(iVar3);" (call_expression "(**(code **)(puVar25 + 0x924c4))(iVar3)" (parenthesized_expression "(**(code **)(puVar25 + 0x924c4))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x924c4)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x924c4)" (* "*") (cast_expression "(code **)(puVar25 + 0x924c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x924c4)" (( "(") (binary_expression "puVar25 + 0x924c4" (identifier "puVar25") (+ "+") (number_literal "0x924c4")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "pbVar11 = (byte *)0x0;" (assignment_expression "pbVar11 = (byte *)0x0" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar9 = pbStack_88;" (assignment_expression "pbVar9 = pbStack_88" (identifier "pbVar9") (= "=") (identifier "pbStack_88")) (; ";")) (expression_statement "iVar19 = FUN_0004f704(iVar3,pbStack_88,0);" (assignment_expression "iVar19 = FUN_0004f704(iVar3,pbStack_88,0)" (identifier "iVar19") (= "=") (call_expression "FUN_0004f704(iVar3,pbStack_88,0)" (identifier "FUN_0004f704") (argument_list "(iVar3,pbStack_88,0)" (( "(") (identifier "iVar3") (, ",") (identifier "pbStack_88") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar23 = *(int *)(puVar25 + 0x92414);" (assignment_expression "iVar23 = *(int *)(puVar25 + 0x92414)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar25 + 0x92414)" (* "*") (cast_expression "(int *)(puVar25 + 0x92414)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x92414)" (( "(") (binary_expression "puVar25 + 0x92414" (identifier "puVar25") (+ "+") (number_literal "0x92414")) () ")"))))) (; ";")) (expression_statement "(*(code *)(iVar23 + -0x6be0))(pbStack_88);" (call_expression "(*(code *)(iVar23 + -0x6be0))(pbStack_88)" (parenthesized_expression "(*(code *)(iVar23 + -0x6be0))" (( "(") (pointer_expression "*(code *)(iVar23 + -0x6be0)" (* "*") (cast_expression "(code *)(iVar23 + -0x6be0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + -0x6be0)" (( "(") (binary_expression "iVar23 + -0x6be0" (identifier "iVar23") (+ "+") (number_literal "-0x6be0")) () ")")))) () ")")) (argument_list "(pbStack_88)" (( "(") (identifier "pbStack_88") () ")"))) (; ";")) (expression_statement "(*(code *)(iVar23 + -0x6be0))(iVar3);" (call_expression "(*(code *)(iVar23 + -0x6be0))(iVar3)" (parenthesized_expression "(*(code *)(iVar23 + -0x6be0))" (( "(") (pointer_expression "*(code *)(iVar23 + -0x6be0)" (* "*") (cast_expression "(code *)(iVar23 + -0x6be0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + -0x6be0)" (( "(") (binary_expression "iVar23 + -0x6be0" (identifier "iVar23") (+ "+") (number_literal "-0x6be0")) () ")")))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (if_statement "if (iVar19 == 0) {\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar2 = 0;\n            goto LAB_00062fb8;\n          }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00062fb8;" (goto "goto") (statement_identifier "LAB_00062fb8") (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar24 = *(uint *)(param_2 + 4);" (assignment_expression "uVar24 = *(uint *)(param_2 + 4)" (identifier "uVar24") (= "=") (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 "uVar18 = *(uint *)(pbVar10 + 4);" (assignment_expression "uVar18 = *(uint *)(pbVar10 + 4)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(pbVar10 + 4)" (* "*") (cast_expression "(uint *)(pbVar10 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar10 + 4)" (( "(") (binary_expression "pbVar10 + 4" (identifier "pbVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar22 = uVar24 | uVar18;" (assignment_expression "uVar22 = uVar24 | uVar18" (identifier "uVar22") (= "=") (binary_expression "uVar24 | uVar18" (identifier "uVar24") (| "|") (identifier "uVar18"))) (; ";")) (if_statement "if ((uVar22 & 0x400) != 0) {\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }" (if "if") (parenthesized_expression "((uVar22 & 0x400) != 0)" (( "(") (binary_expression "(uVar22 & 0x400) != 0" (parenthesized_expression "(uVar22 & 0x400)" (( "(") (binary_expression "uVar22 & 0x400" (identifier "uVar22") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar2 = 2;\n      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;\n      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;\n      goto LAB_00062f88;\n    }" ({ "{") (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (; ";")) (if_statement "if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;" (if "if") (parenthesized_expression "((uVar18 & 0x400 & uVar24) == 0)" (( "(") (binary_expression "(uVar18 & 0x400 & uVar24) == 0" (parenthesized_expression "(uVar18 & 0x400 & uVar24)" (( "(") (binary_expression "uVar18 & 0x400 & uVar24" (binary_expression "uVar18 & 0x400" (identifier "uVar18") (& "&") (number_literal "0x400")) (& "&") (identifier "uVar24")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062fb8;" (goto "goto") (statement_identifier "LAB_00062fb8") (; ";"))) (if_statement "if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;" (if "if") (parenthesized_expression "(*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8))" (( "(") (binary_expression "*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)" (pointer_expression "*(int *)(param_2 + 8)" (* "*") (cast_expression "(int *)(param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (pointer_expression "*(int *)(pbVar10 + 8)" (* "*") (cast_expression "(int *)(pbVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar10 + 8)" (( "(") (binary_expression "pbVar10 + 8" (identifier "pbVar10") (+ "+") (number_literal "8")) () ")"))))) () ")")) (goto_statement "goto LAB_00062fb4;" (goto "goto") (statement_identifier "LAB_00062fb4") (; ";"))) (goto_statement "goto LAB_00062f88;" (goto "goto") (statement_identifier "LAB_00062f88") (; ";")) (} "}"))) (expression_statement "bVar14 = *param_2;" (assignment_expression "bVar14 = *param_2" (identifier "bVar14") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "bVar6 = *pbVar10;" (assignment_expression "bVar6 = *pbVar10" (identifier "bVar6") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (if_statement "if (bVar14 == bVar6) {\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }" (if "if") (parenthesized_expression "(bVar14 == bVar6)" (( "(") (binary_expression "bVar14 == bVar6" (identifier "bVar14") (== "==") (identifier "bVar6")) () ")")) (compound_statement "{\n      if (bVar14 == 0x47) goto LAB_00062fb4;\n      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;\n      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }\n      if (bVar14 == 0x77) goto LAB_00062f88;\n      pbVar9 = *(byte **)(pbVar10 + 8);\n      if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_00062fb4;\n    }" ({ "{") (if_statement "if (bVar14 == 0x47) goto LAB_00062fb4;" (if "if") (parenthesized_expression "(bVar14 == 0x47)" (( "(") (binary_expression "bVar14 == 0x47" (identifier "bVar14") (== "==") (number_literal "0x47")) () ")")) (goto_statement "goto LAB_00062fb4;" (goto "goto") (statement_identifier "LAB_00062fb4") (; ";"))) (if_statement "if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))\n      goto LAB_0006305c;" (if "if") (parenthesized_expression "(((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))" (( "(") (binary_expression "((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0)" (parenthesized_expression "((bVar14 & 0xfd) == 0xa4)" (( "(") (binary_expression "(bVar14 & 0xfd) == 0xa4" (parenthesized_expression "(bVar14 & 0xfd)" (( "(") (binary_expression "bVar14 & 0xfd" (identifier "bVar14") (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0xa4")) () ")")) (|| "||") (parenthesized_expression "(pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0)" (( "(") (comma_expression "pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0" (assignment_expression "pbVar15 = *(byte **)(param_2 + 8)" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)(param_2 + 8)" (* "*") (cast_expression "(byte **)(param_2 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (, ",") (binary_expression "pbVar15 == (byte *)0x0" (identifier "pbVar15") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_0006305c;" (goto "goto") (statement_identifier "LAB_0006305c") (; ";"))) (if_statement "if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }" (if "if") (parenthesized_expression "((bVar14 == 0xa9) || (bVar14 == 0xa5))" (( "(") (binary_expression "(bVar14 == 0xa9) || (bVar14 == 0xa5)" (parenthesized_expression "(bVar14 == 0xa9)" (( "(") (binary_expression "bVar14 == 0xa9" (identifier "bVar14") (== "==") (number_literal "0xa9")) () ")")) (|| "||") (parenthesized_expression "(bVar14 == 0xa5)" (( "(") (binary_expression "bVar14 == 0xa5" (identifier "bVar14") (== "==") (number_literal "0xa5")) () ")"))) () ")")) (compound_statement "{\n        pbVar9 = *(byte **)(pbVar10 + 8);\n        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);\n        do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );\n      }" ({ "{") (expression_statement "pbVar9 = *(byte **)(pbVar10 + 8);" (assignment_expression "pbVar9 = *(byte **)(pbVar10 + 8)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(pbVar10 + 8)" (* "*") (cast_expression "(byte **)(pbVar10 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar10 + 8)" (( "(") (binary_expression "pbVar10 + 8" (identifier "pbVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);" (assignment_expression "pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar25 + 0x923fc) + 0x25ac)" (( "(") (binary_expression "*(int *)(puVar25 + 0x923fc) + 0x25ac" (pointer_expression "*(int *)(puVar25 + 0x923fc)" (* "*") (cast_expression "(int *)(puVar25 + 0x923fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x923fc)" (( "(") (binary_expression "puVar25 + 0x923fc" (identifier "puVar25") (+ "+") (number_literal "0x923fc")) () ")")))) (+ "+") (number_literal "0x25ac")) () ")")))) (; ";")) (do_statement "do {\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while( true );" (do "do") (compound_statement "{\n          uVar5 = (uint)*pbVar15;\n          if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }\n          pbVar15 = pbVar15 + 1;\n          pbVar9 = pbVar9 + 1;\n        }" ({ "{") (expression_statement "uVar5 = (uint)*pbVar15;" (assignment_expression "uVar5 = (uint)*pbVar15" (identifier "uVar5") (= "=") (binary_expression "(uint)*pbVar15" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar15"))) (; ";")) (if_statement "if (uVar5 == *pbVar9) {\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }\n          else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }" (if "if") (parenthesized_expression "(uVar5 == *pbVar9)" (( "(") (binary_expression "uVar5 == *pbVar9" (identifier "uVar5") (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) () ")")) (compound_statement "{\n            if (uVar5 == 0) goto code_r0x000632f4;\n          }" ({ "{") (if_statement "if (uVar5 == 0) goto code_r0x000632f4;" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000632f4;" (goto "goto") (statement_identifier "code_r0x000632f4") (; ";"))) (} "}")) (else_clause "else {\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }" (else "else") (compound_statement "{\n            uVar2 = 2;\n            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;\n          }" ({ "{") (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (; ";")) (if_statement "if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;" (if "if") (parenthesized_expression "(pbVar11[uVar5] != pbVar11[*pbVar9])" (( "(") (binary_expression "pbVar11[uVar5] != pbVar11[*pbVar9]" (subscript_expression "pbVar11[uVar5]" (identifier "pbVar11") ([ "[") (identifier "uVar5") (] "]")) (!= "!=") (subscript_expression "pbVar11[*pbVar9]" (identifier "pbVar11") ([ "[") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (] "]"))) () ")")) (goto_statement "goto LAB_00062fb8;" (goto "goto") (statement_identifier "LAB_00062fb8") (; ";"))) (} "}")))) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 1" (identifier "pbVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if (bVar14 == 0x77) goto LAB_00062f88;" (if "if") (parenthesized_expression "(bVar14 == 0x77)" (( "(") (binary_expression "bVar14 == 0x77" (identifier "bVar14") (== "==") (number_literal "0x77")) () ")")) (goto_statement "goto LAB_00062f88;" (goto "goto") (statement_identifier "LAB_00062f88") (; ";"))) (expression_statement "pbVar9 = *(byte **)(pbVar10 + 8);" (assignment_expression "pbVar9 = *(byte **)(pbVar10 + 8)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(pbVar10 + 8)" (* "*") (cast_expression "(byte **)(pbVar10 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar10 + 8)" (( "(") (binary_expression "pbVar10 + 8" (identifier "pbVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (bVar14 == 0x6f) {\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }\n      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(bVar14 == 0x6f)" (( "(") (binary_expression "bVar14 == 0x6f" (identifier "bVar14") (== "==") (number_literal "0x6f")) () ")")) (compound_statement "{\n        iVar3 = (**(code **)(puVar25 + 0x9254c))();\n        if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }\n      }" ({ "{") (expression_statement "iVar3 = (**(code **)(puVar25 + 0x9254c))();" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x9254c))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar25 + 0x9254c))()" (parenthesized_expression "(**(code **)(puVar25 + 0x9254c))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x9254c)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x9254c)" (* "*") (cast_expression "(code **)(puVar25 + 0x9254c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x9254c)" (( "(") (binary_expression "puVar25 + 0x9254c" (identifier "puVar25") (+ "+") (number_literal "0x9254c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar24 = *(uint *)(param_2 + 4);\n          uVar18 = *(uint *)(pbVar10 + 4);\n          goto LAB_0006305c;\n        }" ({ "{") (expression_statement "uVar24 = *(uint *)(param_2 + 4);" (assignment_expression "uVar24 = *(uint *)(param_2 + 4)" (identifier "uVar24") (= "=") (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 "uVar18 = *(uint *)(pbVar10 + 4);" (assignment_expression "uVar18 = *(uint *)(pbVar10 + 4)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(pbVar10 + 4)" (* "*") (cast_expression "(uint *)(pbVar10 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar10 + 4)" (( "(") (binary_expression "pbVar10 + 4" (identifier "pbVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0006305c;" (goto "goto") (statement_identifier "LAB_0006305c") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" (else "else") (if_statement "if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))\n      {\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))" (( "(") (binary_expression "(pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0)" (parenthesized_expression "(pbVar9 == (byte *)0x0)" (( "(") (binary_expression "pbVar9 == (byte *)0x0" (identifier "pbVar9") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0)" (( "(") (comma_expression "iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x926e0))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar25 + 0x926e0))()" (parenthesized_expression "(**(code **)(puVar25 + 0x926e0))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x926e0)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x926e0)" (* "*") (cast_expression "(code **)(puVar25 + 0x926e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x926e0)" (( "(") (binary_expression "puVar25 + 0x926e0" (identifier "puVar25") (+ "+") (number_literal "0x926e0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_0006305c:\n        if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" (statement_identifier "LAB_0006305c") (: ":") (if_statement "if (((uVar18 ^ uVar24) & 0x202) == 0) {\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((uVar18 ^ uVar24) & 0x202) == 0)" (( "(") (binary_expression "((uVar18 ^ uVar24) & 0x202) == 0" (parenthesized_expression "((uVar18 ^ uVar24) & 0x202)" (( "(") (binary_expression "(uVar18 ^ uVar24) & 0x202" (parenthesized_expression "(uVar18 ^ uVar24)" (( "(") (binary_expression "uVar18 ^ uVar24" (identifier "uVar18") (^ "^") (identifier "uVar24")) () ")")) (& "&") (number_literal "0x202")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar2 = 0;\n          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;\n          if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;" (if "if") (parenthesized_expression "((uVar22 & 0x4000) != 0)" (( "(") (binary_expression "(uVar22 & 0x4000) != 0" (parenthesized_expression "(uVar22 & 0x4000)" (( "(") (binary_expression "uVar22 & 0x4000" (identifier "uVar22") (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062fb8;" (goto "goto") (statement_identifier "LAB_00062fb8") (; ";"))) (if_statement "if ((uVar22 & 0x800) == 0) {\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "((uVar22 & 0x800) == 0)" (( "(") (binary_expression "(uVar22 & 0x800) == 0" (parenthesized_expression "(uVar22 & 0x800)" (( "(") (binary_expression "uVar22 & 0x800" (identifier "uVar22") (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            pbVar9 = *(byte **)(param_2 + 0x10);\n            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n            if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }\n          }" ({ "{") (if_statement "if ((uVar22 & 8) == 0) {\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }\n            else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" (if "if") (parenthesized_expression "((uVar22 & 8) == 0)" (( "(") (binary_expression "(uVar22 & 8) == 0" (parenthesized_expression "(uVar22 & 8)" (( "(") (binary_expression "uVar22 & 8" (identifier "uVar22") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar11 = *(byte **)(pbVar10 + 0xc);\n              pbVar9 = *(byte **)(param_2 + 0xc);\n              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);\n              if (iVar3 != 0) goto LAB_00062fb4;\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" ({ "{") (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0xc);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0xc)" (identifier "pbVar11") (= "=") (pointer_expression "*(byte **)(pbVar10 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar10 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar10 + 0xc)" (( "(") (binary_expression "pbVar10 + 0xc" (identifier "pbVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pbVar9 = *(byte **)(param_2 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0xc)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(param_2 + 0xc)" (* "*") (cast_expression "(byte **)(param_2 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" (identifier "iVar3") (= "=") (call_expression "FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" (identifier "FUN_00062ed8") (argument_list "(puVar7,pbVar9,pbVar11,pbVar13)" (( "(") (identifier "puVar7") (, ",") (identifier "pbVar9") (, ",") (identifier "pbVar11") (, ",") (identifier "pbVar13") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00062fb4;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062fb4;" (goto "goto") (statement_identifier "LAB_00062fb4") (; ";"))) (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0x10);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0x10)" (identifier "pbVar11") (= "=") (pointer_expression "*(byte **)(pbVar10 + 0x10)" (* "*") (cast_expression "(byte **)(pbVar10 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar10 + 0x10)" (( "(") (binary_expression "pbVar10 + 0x10" (identifier "pbVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" (else "else") (compound_statement "{\n              pbVar11 = *(byte **)(pbVar10 + 0x10);\n            }" ({ "{") (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0x10);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0x10)" (identifier "pbVar11") (= "=") (pointer_expression "*(byte **)(pbVar10 + 0x10)" (* "*") (cast_expression "(byte **)(pbVar10 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar10 + 0x10)" (( "(") (binary_expression "pbVar10 + 0x10" (identifier "pbVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pbVar9 = *(byte **)(param_2 + 0x10);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0x10)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(param_2 + 0x10)" (* "*") (cast_expression "(byte **)(param_2 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" (identifier "iVar3") (= "=") (call_expression "FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13)" (identifier "FUN_00062ed8") (argument_list "(puVar7,pbVar9,pbVar11,pbVar13)" (( "(") (identifier "puVar7") (, ",") (identifier "pbVar9") (, ",") (identifier "pbVar11") (, ",") (identifier "pbVar13") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar9 = *(byte **)(pbVar10 + 0x14);\n              pbVar11 = pbVar13;\n              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);\n              if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }\n            }" ({ "{") (expression_statement "pbVar9 = *(byte **)(pbVar10 + 0x14);" (assignment_expression "pbVar9 = *(byte **)(pbVar10 + 0x14)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(pbVar10 + 0x14)" (* "*") (cast_expression "(byte **)(pbVar10 + 0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar10 + 0x14)" (( "(") (binary_expression "pbVar10 + 0x14" (identifier "pbVar10") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "pbVar11 = pbVar13;" (assignment_expression "pbVar11 = pbVar13" (identifier "pbVar11") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);" (assignment_expression "iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13)" (identifier "iVar3") (= "=") (call_expression "FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13)" (identifier "FUN_000633ac") (argument_list "(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13)" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x14)" (( "(") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "pbVar9") (, ",") (identifier "pbVar13") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                bVar14 = *param_2;\n                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }\n                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }\n              }" ({ "{") (expression_statement "bVar14 = *param_2;" (assignment_expression "bVar14 = *param_2" (identifier "bVar14") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }" (if "if") (parenthesized_expression "(((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0))" (( "(") (binary_expression "((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)" (parenthesized_expression "((bVar14 == 0x73) || (bVar14 == 0xa7))" (( "(") (binary_expression "(bVar14 == 0x73) || (bVar14 == 0xa7)" (parenthesized_expression "(bVar14 == 0x73)" (( "(") (binary_expression "bVar14 == 0x73" (identifier "bVar14") (== "==") (number_literal "0x73")) () ")")) (|| "||") (parenthesized_expression "(bVar14 == 0xa7)" (( "(") (binary_expression "bVar14 == 0xa7" (identifier "bVar14") (== "==") (number_literal "0xa7")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar22 & 0x2000) != 0)" (( "(") (binary_expression "(uVar22 & 0x2000) != 0" (parenthesized_expression "(uVar22 & 0x2000)" (( "(") (binary_expression "uVar22 & 0x2000" (identifier "uVar22") (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00062f88:\n                  uVar2 = 0;\n                  goto LAB_00062fb8;\n                }" ({ "{") (labeled_statement "LAB_00062f88:\n                  uVar2 = 0;" (statement_identifier "LAB_00062f88") (: ":") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_00062fb8;" (goto "goto") (statement_identifier "LAB_00062fb8") (; ";")) (} "}"))) (if_statement "if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }" (if "if") (parenthesized_expression "((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac))))" (( "(") (binary_expression "(*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&\n                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))" (parenthesized_expression "(*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20))" (( "(") (binary_expression "*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)" (pointer_expression "*(short *)(param_2 + 0x20)" (* "*") (cast_expression "(short *)(param_2 + 0x20)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (pointer_expression "*(short *)(pbVar10 + 0x20)" (* "*") (cast_expression "(short *)(pbVar10 + 0x20)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar10 + 0x20)" (( "(") (binary_expression "pbVar10 + 0x20" (identifier "pbVar10") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))" (( "(") (parenthesized_expression "(param_2[2] == pbVar10[2] || (bVar14 != 0xac))" (( "(") (binary_expression "param_2[2] == pbVar10[2] || (bVar14 != 0xac)" (binary_expression "param_2[2] == pbVar10[2]" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (== "==") (subscript_expression "pbVar10[2]" (identifier "pbVar10") ([ "[") (number_literal "2") (] "]"))) (|| "||") (parenthesized_expression "(bVar14 != 0xac)" (( "(") (binary_expression "bVar14 != 0xac" (identifier "bVar14") (!= "!=") (number_literal "0xac")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  uVar2 = 0;\n                  if (bVar14 == 0x31) goto LAB_00062fb8;\n                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;\n                  uVar2 = 0;\n                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;\n                }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (bVar14 == 0x31) goto LAB_00062fb8;" (if "if") (parenthesized_expression "(bVar14 == 0x31)" (( "(") (binary_expression "bVar14 == 0x31" (identifier "bVar14") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_00062fb8;" (goto "goto") (statement_identifier "LAB_00062fb8") (; ";"))) (if_statement "if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;" (if "if") (parenthesized_expression "(*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c))" (( "(") (binary_expression "*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)" (pointer_expression "*(byte **)(param_2 + 0x1c)" (* "*") (cast_expression "(byte **)(param_2 + 0x1c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (pointer_expression "*(byte **)(pbVar10 + 0x1c)" (* "*") (cast_expression "(byte **)(pbVar10 + 0x1c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar10 + 0x1c)" (( "(") (binary_expression "pbVar10 + 0x1c" (identifier "pbVar10") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (goto_statement "goto LAB_00062f88;" (goto "goto") (statement_identifier "LAB_00062f88") (; ";"))) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;" (if "if") (parenthesized_expression "(pbVar13 == *(byte **)(param_2 + 0x1c))" (( "(") (binary_expression "pbVar13 == *(byte **)(param_2 + 0x1c)" (identifier "pbVar13") (== "==") (pointer_expression "*(byte **)(param_2 + 0x1c)" (* "*") (cast_expression "(byte **)(param_2 + 0x1c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (goto_statement "goto LAB_00062fb8;" (goto "goto") (statement_identifier "LAB_00062fb8") (; ";"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")))) (} "}"))))) (goto_statement "goto LAB_00062fb4;" (goto "goto") (statement_identifier "LAB_00062fb4") (; ";")) (} "}"))) (if_statement "if (bVar14 == 0x6f) {\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }" (if "if") (parenthesized_expression "(bVar14 == 0x6f)" (( "(") (binary_expression "bVar14 == 0x6f" (identifier "bVar14") (== "==") (number_literal "0x6f")) () ")")) (compound_statement "{\n      pbVar9 = *(byte **)(param_2 + 0xc);\n      pbVar11 = pbVar10;\n      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);\n      if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }\nLAB_0006323c:\n      uVar2 = 1;\n      goto LAB_00062fb8;\n    }" ({ "{") (expression_statement "pbVar9 = *(byte **)(param_2 + 0xc);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0xc)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(param_2 + 0xc)" (* "*") (cast_expression "(byte **)(param_2 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" (identifier "pbVar11") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13)" (identifier "iVar3") (= "=") (call_expression "FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13)" (identifier "FUN_00062ed8") (argument_list "(puVar7,pbVar9,pbVar10,pbVar13)" (( "(") (identifier "puVar7") (, ",") (identifier "pbVar9") (, ",") (identifier "pbVar10") (, ",") (identifier "pbVar13") () ")")))) (; ";")) (if_statement "if (1 < iVar3) {\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }" (if "if") (parenthesized_expression "(1 < iVar3)" (( "(") (binary_expression "1 < iVar3" (number_literal "1") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n        bVar6 = *pbVar10;\n        goto LAB_00062fa8;\n      }" ({ "{") (expression_statement "bVar6 = *pbVar10;" (assignment_expression "bVar6 = *pbVar10" (identifier "bVar6") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (goto_statement "goto LAB_00062fa8;" (goto "goto") (statement_identifier "LAB_00062fa8") (; ";")) (} "}"))) (labeled_statement "LAB_0006323c:\n      uVar2 = 1;" (statement_identifier "LAB_0006323c") (: ":") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";"))) (goto_statement "goto LAB_00062fb8;" (goto "goto") (statement_identifier "LAB_00062fb8") (; ";")) (} "}"))) (labeled_statement "LAB_00062fa8:\n    if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }" (statement_identifier "LAB_00062fa8") (: ":") (if_statement "if (bVar6 == 0x6f) {\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }" (if "if") (parenthesized_expression "(bVar6 == 0x6f)" (( "(") (binary_expression "bVar6 == 0x6f" (identifier "bVar6") (== "==") (number_literal "0x6f")) () ")")) (compound_statement "{\n      pbVar11 = *(byte **)(pbVar10 + 0xc);\n      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);\n      pbVar9 = param_2;\n      if (iVar3 < 2) goto LAB_0006323c;\n    }" ({ "{") (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0xc);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0xc)" (identifier "pbVar11") (= "=") (pointer_expression "*(byte **)(pbVar10 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar10 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar10 + 0xc)" (( "(") (binary_expression "pbVar10 + 0xc" (identifier "pbVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);" (assignment_expression "iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13)" (identifier "iVar3") (= "=") (call_expression "FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13)" (identifier "FUN_00062ed8") (argument_list "(puVar7,param_2,pbVar11,pbVar13)" (( "(") (identifier "puVar7") (, ",") (identifier "param_2") (, ",") (identifier "pbVar11") (, ",") (identifier "pbVar13") () ")")))) (; ";")) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" (identifier "pbVar9") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (iVar3 < 2) goto LAB_0006323c;" (if "if") (parenthesized_expression "(iVar3 < 2)" (( "(") (binary_expression "iVar3 < 2" (identifier "iVar3") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_0006323c;" (goto "goto") (statement_identifier "LAB_0006323c") (; ";"))) (} "}")))) (} "}")))) (labeled_statement "LAB_00062fb4:\n  uVar2 = 2;" (statement_identifier "LAB_00062fb4") (: ":") (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (; ";"))) (labeled_statement "LAB_00062fb8:\n  if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }" (statement_identifier "LAB_00062fb8") (: ":") (if_statement "if (piStack_84 == (int *)*puVar16) {\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(piStack_84 == (int *)*puVar16)" (( "(") (binary_expression "piStack_84 == (int *)*puVar16" (identifier "piStack_84") (== "==") (cast_expression "(int *)*puVar16" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar16" (* "*") (identifier "puVar16")))) () ")")) (compound_statement "{\n    return uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))) (expression_statement "pcVar26 = *(code **)(puVar25 + 0x92668);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0x92668)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(puVar25 + 0x92668)" (* "*") (cast_expression "(code **)(puVar25 + 0x92668)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x92668)" (( "(") (binary_expression "puVar25 + 0x92668" (identifier "puVar25") (+ "+") (number_literal "0x92668")) () ")"))))) (; ";")) (expression_statement "piVar8 = piStack_84;" (assignment_expression "piVar8 = piStack_84" (identifier "piVar8") (= "=") (identifier "piStack_84")) (; ";")) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar26 = pcVar26 + 0x99ef4;" (assignment_expression "pcVar26 = pcVar26 + 0x99ef4" (identifier "pcVar26") (= "=") (binary_expression "pcVar26 + 0x99ef4" (identifier "pcVar26") (+ "+") (number_literal "0x99ef4"))) (; ";")) (if_statement "if (piVar8 == (int *)0x0) {\n    return (uint)(pbVar9 != (byte *)0x0);\n  }" (if "if") (parenthesized_expression "(piVar8 == (int *)0x0)" (( "(") (binary_expression "piVar8 == (int *)0x0" (identifier "piVar8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return (uint)(pbVar9 != (byte *)0x0);\n  }" ({ "{") (return_statement "return (uint)(pbVar9 != (byte *)0x0);" (return "return") (call_expression "(uint)(pbVar9 != (byte *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar9 != (byte *)0x0)" (( "(") (binary_expression "pbVar9 != (byte *)0x0" (identifier "pbVar9") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) (; ";")) (} "}"))) (if_statement "if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9))" (( "(") (binary_expression "(pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)" (parenthesized_expression "(pbVar9 == (byte *)0x0)" (( "(") (binary_expression "pbVar9 == (byte *)0x0" (identifier "pbVar9") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*piVar8 != *(int *)pbVar9)" (( "(") (binary_expression "*piVar8 != *(int *)pbVar9" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (!= "!=") (pointer_expression "*(int *)pbVar9" (* "*") (cast_expression "(int *)pbVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar9")))) () ")"))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (*piVar8 < 1) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(*piVar8 < 1)" (( "(") (binary_expression "*piVar8 < 1" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = piVar8[1];" (assignment_expression "iVar3 = piVar8[1]" (identifier "iVar3") (= "=") (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(pbVar9 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pbVar9 + 4)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(pbVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(pbVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar9 + 4)" (( "(") (binary_expression "pbVar9 + 4" (identifier "pbVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }" (if "if") (parenthesized_expression "(*(byte *)(piVar8 + 3) == pbVar9[0xc])" (( "(") (binary_expression "*(byte *)(piVar8 + 3) == pbVar9[0xc]" (pointer_expression "*(byte *)(piVar8 + 3)" (* "*") (cast_expression "(byte *)(piVar8 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 3)" (( "(") (binary_expression "piVar8 + 3" (identifier "piVar8") (+ "+") (number_literal "3")) () ")")))) (== "==") (subscript_expression "pbVar9[0xc]" (identifier "pbVar9") ([ "[") (number_literal "0xc") (] "]"))) () ")")) (compound_statement "{\n    iVar19 = 0;\n    pbVar15 = pbVar9 + 0x14;\n    piVar17 = piVar8 + 5;\n    do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);\n  }" ({ "{") (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar15 = pbVar9 + 0x14;" (assignment_expression "pbVar15 = pbVar9 + 0x14" (identifier "pbVar15") (= "=") (binary_expression "pbVar9 + 0x14" (identifier "pbVar9") (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "piVar17 = piVar8 + 5;" (assignment_expression "piVar17 = piVar8 + 5" (identifier "piVar17") (= "=") (binary_expression "piVar8 + 5" (identifier "piVar8") (+ "+") (number_literal "5"))) (; ";")) (do_statement "do {\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    } while (*pbVar10 == *pbVar13);" (do "do") (compound_statement "{\n      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);\n      iVar19 = iVar19 + 1;\n      if (uVar2 != 0) {\n        return uVar2;\n      }\n      if (*piVar8 <= iVar19) {\n        return 0;\n      }\n      pbVar10 = (byte *)(piVar17 + 2);\n      pbVar13 = pbVar15 + 8;\n      iVar3 = *piVar17;\n      uVar12 = *(undefined4 *)pbVar15;\n      pbVar15 = pbVar15 + 0x10;\n      piVar17 = piVar17 + 4;\n    }" ({ "{") (expression_statement "uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);" (assignment_expression "uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26)" (identifier "uVar2") (= "=") (call_expression "FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26)" (identifier "FUN_00062ed8") (argument_list "(0,iVar3,uVar12,pbVar11,pcVar26)" (( "(") (number_literal "0") (, ",") (identifier "iVar3") (, ",") (identifier "uVar12") (, ",") (identifier "pbVar11") (, ",") (identifier "pcVar26") () ")")))) (; ";")) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar2 != 0) {\n        return uVar2;\n      }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return uVar2;\n      }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (if_statement "if (*piVar8 <= iVar19) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(*piVar8 <= iVar19)" (( "(") (binary_expression "*piVar8 <= iVar19" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (<= "<=") (identifier "iVar19")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pbVar10 = (byte *)(piVar17 + 2);" (assignment_expression "pbVar10 = (byte *)(piVar17 + 2)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)(piVar17 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 2)" (( "(") (binary_expression "piVar17 + 2" (identifier "piVar17") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pbVar13 = pbVar15 + 8;" (assignment_expression "pbVar13 = pbVar15 + 8" (identifier "pbVar13") (= "=") (binary_expression "pbVar15 + 8" (identifier "pbVar15") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "iVar3 = *piVar17;" (assignment_expression "iVar3 = *piVar17" (identifier "iVar3") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)pbVar15;" (assignment_expression "uVar12 = *(undefined4 *)pbVar15" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)pbVar15" (* "*") (cast_expression "(undefined4 *)pbVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + 0x10;" (assignment_expression "pbVar15 = pbVar15 + 0x10" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 0x10" (identifier "pbVar15") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "piVar17 = piVar17 + 4;" (assignment_expression "piVar17 = piVar17 + 4" (identifier "piVar17") (= "=") (binary_expression "piVar17 + 4" (identifier "piVar17") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pbVar10 == *pbVar13)" (( "(") (binary_expression "*pbVar10 == *pbVar13" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13"))) () ")")) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (labeled_statement "code_r0x000632f4:\n  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }" (statement_identifier "code_r0x000632f4") (: ":") (if_statement "if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }" (if "if") (parenthesized_expression "((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f)" (( "(") (binary_expression "(uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f" (call_expression "(uint)((uVar24 & 0x1000000) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar24 & 0x1000000) != 0)" (( "(") (binary_expression "(uVar24 & 0x1000000) != 0" (parenthesized_expression "(uVar24 & 0x1000000)" (( "(") (binary_expression "uVar24 & 0x1000000" (identifier "uVar24") (& "&") (number_literal "0x1000000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) (== "==") (binary_expression "(uVar18 << 7) >> 0x1f" (parenthesized_expression "(uVar18 << 7)" (( "(") (binary_expression "uVar18 << 7" (identifier "uVar18") (<< "<<") (number_literal "7")) () ")")) (>> ">>") (number_literal "0x1f"))) () ")")) (compound_statement "{\n    if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }\n    goto LAB_0006305c;\n  }" ({ "{") (if_statement "if ((uVar24 & 0x1000000) != 0) {\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }" (if "if") (parenthesized_expression "((uVar24 & 0x1000000) != 0)" (( "(") (binary_expression "(uVar24 & 0x1000000) != 0" (parenthesized_expression "(uVar24 & 0x1000000)" (( "(") (binary_expression "uVar24 & 0x1000000" (identifier "uVar24") (& "&") (number_literal "0x1000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar11 = *(byte **)(pbVar10 + 0x2c);\n      pbVar9 = *(byte **)(param_2 + 0x2c);\n      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);\n      if (iVar3 != 0) goto LAB_00062fb4;\n      uVar24 = *(uint *)(param_2 + 4);\n      uVar18 = *(uint *)(pbVar10 + 4);\n    }" ({ "{") (expression_statement "pbVar11 = *(byte **)(pbVar10 + 0x2c);" (assignment_expression "pbVar11 = *(byte **)(pbVar10 + 0x2c)" (identifier "pbVar11") (= "=") (pointer_expression "*(byte **)(pbVar10 + 0x2c)" (* "*") (cast_expression "(byte **)(pbVar10 + 0x2c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar10 + 0x2c)" (( "(") (binary_expression "pbVar10 + 0x2c" (identifier "pbVar10") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "pbVar9 = *(byte **)(param_2 + 0x2c);" (assignment_expression "pbVar9 = *(byte **)(param_2 + 0x2c)" (identifier "pbVar9") (= "=") (pointer_expression "*(byte **)(param_2 + 0x2c)" (* "*") (cast_expression "(byte **)(param_2 + 0x2c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);" (assignment_expression "iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1)" (identifier "iVar3") (= "=") (call_expression "FUN_000634f0(puVar7,pbVar9,pbVar11,1)" (identifier "FUN_000634f0") (argument_list "(puVar7,pbVar9,pbVar11,1)" (( "(") (identifier "puVar7") (, ",") (identifier "pbVar9") (, ",") (identifier "pbVar11") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00062fb4;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062fb4;" (goto "goto") (statement_identifier "LAB_00062fb4") (; ";"))) (expression_statement "uVar24 = *(uint *)(param_2 + 4);" (assignment_expression "uVar24 = *(uint *)(param_2 + 4)" (identifier "uVar24") (= "=") (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 "uVar18 = *(uint *)(pbVar10 + 4);" (assignment_expression "uVar18 = *(uint *)(pbVar10 + 4)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(pbVar10 + 4)" (* "*") (cast_expression "(uint *)(pbVar10 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar10 + 4)" (( "(") (binary_expression "pbVar10 + 4" (identifier "pbVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (goto_statement "goto LAB_0006305c;" (goto "goto") (statement_identifier "LAB_0006305c") (; ";")) (} "}")))) (goto_statement "goto LAB_00062fb4;" (goto "goto") (statement_identifier "LAB_00062fb4") (; ";")) (} "}")))

int function_1(type_1 *db,type_2 *var_22,type_3 enc,type_3 affinity,type_4 **ppVal,
                 type_5 *pCtx)

{
  type_6 *pbVar1;
  type_6 *pbVar2;
  char var_19;
  type_7 *puVar4;
  type_8 var_12;
  int var_6;
  char *var_14;
  type_6 var_1;
  type_9 *var_18;
  int var_9;
  type_4 *var_17;
  type_8 var_30;
  int var_10;
  type_6 var_28;
  type_10 *pVVar12;
  type_11 *var_23;
  type_6 *var_29;
  int *var_34;
  type_12 aVar16;
  type_2 *pA;
  type_13 in_register_00000018;
  type_12 aVar17;
  type_12 aVar18;
  type_2 *pB;
  type_13 in_register_0000001c;
  type_12 aVar19;
  type_12 aVar20;
  type_12 pExpr_00;
  type_14 *puVar21;
  int *var_35;
  type_12 aVar23;
  type_12 unaff_s6;
  type_8 var_27;
  int unaff_s7;
  type_8 var_26;
  type_7 *var_21;
  type_15 *pcVar27;
  type_5 *in_stack_ffffff6c;
  type_12 aStack_88;
  int *var_33;
  int iStack_7c;
  type_12 aStack_78;
  type_7 *puStack_74;
  type_4 **ppsStack_70;
  type_12 aStack_6c;
  type_12 aStack_68;
  type_12 aStack_64;
  int iStack_60;
  type_15 *pcStack_5c;
  type_5 *in_stack_ffffffbc;
  type_4 *var_7;
  type_11 *var_20;
  
  puVar4 = PTR___stack_chk_guard_000f5568;
  aVar19.iValue._0_3_ = in_register_0000001c;
  aVar19.iValue._3_1_ = affinity;
  aVar16.iValue._0_3_ = in_register_00000018;
  aVar16.iValue._3_1_ = enc;
  var_7 = (type_9 *)0x0;
  var_20 = *(type_11 **)PTR___stack_chk_guard_000f5568;
  for (pExpr_00 = (type_12)var_22;
      (var_1 = *pExpr_00.zToken, var_1 == 0xab || (var_1 == 0xb2));
      pExpr_00 = (type_12)
                 ((type_12 *)(pExpr_00.iValue + 0xc))->zToken) {
  }
  if (var_1 == 0xad) {
    var_1 = *(type_3 *)(pExpr_00.iValue + 2);
  }
  if (var_1 == 0x24) {
    var_1 = (*(type_15 *)(var_2 + 0x4c38))
                       (((type_12 *)(pExpr_00.iValue + 8))->zToken,0);
    aVar23.iValue._0_3_ = 0;
    aVar23.iValue._3_1_ = var_1;
    var_22 = (type_2 *)((type_12 *)(pExpr_00.iValue + 0xc))->zToken;
    aVar20.iValue = aVar23.iValue;
    var_6 = function_1(db,var_22,enc,var_1,ppVal,in_stack_ffffffbc);
    aVar17 = aVar16;
    if (*ppVal != (type_9 *)0x0) {
      var_3(*ppVal,var_1,'\x01');
      aVar17.iValue = 1;
      var_22 = (type_2 *)(int)(char)affinity;
      var_4(*ppVal,affinity,'\x01');
    }
  }
  else {
    aVar17 = aVar16;
    aVar20 = aVar19;
    aVar23 = aVar16;
    if (var_1 == 0xaa) {
      pExpr_00 = (type_12)
                 ((type_12 *)(pExpr_00.iValue + 0xc))->zToken;
      var_1 = *pExpr_00.zToken;
      if ((var_1 == 0x98) ||
         (unaff_s6 = (type_12)var_5, var_1 == 0x96)) {
        unaff_s7 = -1;
        unaff_s6.zToken = var_5 + 0x74bc;
        goto LAB_000629b8;
      }
LAB_00062b54:
      var_22 = (type_2 *)pExpr_00;
      var_6 = function_1(db,pExpr_00.iValue,enc,affinity,&var_7,in_stack_ffffffbc);
      var_17 = var_7;
      if (var_6 == 0) {
        var_6 = 0;
        if (var_7 != (type_9 *)0x0) {
          (*(type_15 *)(var_8 + -0x4950))();
          if ((var_7->flags & 8) == 0) {
            var_9 = (var_7->u).nZero;
            var_10 = *(int *)((int)&var_7->u + 4);
            if ((var_9 == -0x80000000) && (var_10 == 0)) {
              var_7->flags = var_7->flags & 0x3e40 | 8;
              var_7->u = *(type_16 *)(var_11 + 0x26d0);
            }
            else {
              var_10 = -var_10;
              *(int *)((int)&var_7->u + 4) = var_10;
              (var_7->u).zPType = (char *)(-(type_8)(var_10 != 0) - var_9);
            }
          }
          else {
            (var_7->u).nZero = (var_7->u).nZero ^ 0x80000000;
          }
          var_22 = (type_2 *)(int)(char)affinity;
          aVar17 = aVar16;
          var_4(var_7,affinity,enc);
          var_17 = var_7;
        }
      }
      else {
LAB_00062a94:
        var_6 = 0;
      }
    }
    else {
      unaff_s7 = 1;
      unaff_s6.zToken = var_11 + -0x543c;
LAB_000629b8:
      if (((var_1 == 0x73) || (var_1 == 0x96)) || (var_1 == 0x98)) {
        aVar20.iValue = 0x28;
        aVar17.zToken = (char *)0x0;
        var_7 = (type_4 *)(*(type_15 *)(var_8 + 0x7020))(db);
        if (var_7 == (type_9 *)0x0) goto LAB_00062b00;
        var_12 = *(type_17 *)(pExpr_00.iValue + 4);
        var_7->db = db;
        var_7->flags = 1;
        if ((var_12 & 0x400) == 0) {
          aVar20 = *(type_12 *)(pExpr_00.iValue + 8);
          var_22 = (type_2 *)(var_11 + -0x7ff4);
          aVar17 = unaff_s6;
          var_14 = var_13(db,(char *)var_22);
          if (var_14 == (char *)0x0) goto LAB_00062b04;
          if (var_7 != (type_9 *)0x0) {
            aVar20.iValue = 1;
            var_15
                      (var_7,var_14,-1,'\x01',(type_18 *)(var_8 + 0x67f4));
          }
        }
        else {
          var_6 = ((type_12 *)(pExpr_00.iValue + 8))->iValue;
          var_7->flags = 4;
          (var_7->u).i = (type_19)var_6 * (type_19)unaff_s7;
        }
        if (((var_1 == 0x98) || (var_1 == 0x96)) && ((type_6 *)aVar19.zToken == (type_6 *)0x41)) {
          aVar17.iValue = 1;
          var_22 = (type_2 *)0x43;
          var_4(var_7,'C','\x01');
        }
        else {
          aVar17.iValue = 1;
          var_22 = (type_2 *)(int)(char)affinity;
          var_4(var_7,affinity,'\x01');
        }
        if ((var_7->flags & 0x2c) != 0) {
          var_7->flags = var_7->flags & 0xfffd;
        }
        var_6 = 0;
        var_17 = var_7;
        if ((type_6 *)aVar16.zToken != (type_6 *)0x1) {
          if ((var_7->flags & 2) == 0) goto LAB_00062a94;
          var_22 = (type_2 *)aVar16;
          var_6 = (*(type_15 *)(var_16 + -0x4b48))();
          var_17 = var_7;
        }
      }
      else {
        if (var_1 == 0xaa) {
          pExpr_00 = (type_12)
                     ((type_12 *)(pExpr_00.iValue + 0xc))->zToken;
          goto LAB_00062b54;
        }
        if (var_1 == 0x77) {
          aVar20.iValue = 0x28;
          aVar17.zToken = (char *)0x0;
          var_17 = (type_4 *)(*(type_15 *)(var_8 + 0x7020))(db);
          if (var_17 == (type_9 *)0x0) {
LAB_00062b00:
            var_7 = (type_9 *)0x0;
LAB_00062b04:
            var_12._0_1_ = db->temp_store;
            var_12._1_1_ = db->mallocFailed;
            var_12._2_1_ = db->bBenignMalloc;
            var_12._3_1_ = db->dfltLockMode;
            if ((var_12 & 0xffff00) == 0) {
              (*(type_15 *)(var_8 + 0x67b4))(db);
            }
            var_6 = 7;
            (*(type_15 *)(var_8 + -0x6be0))(var_7);
            goto LAB_00062a9c;
          }
          var_17->db = db;
          var_6 = 0;
          var_17->flags = 1;
        }
        else if (var_1 == 0x97) {
          aVar20.iValue = 0x28;
          aVar17.zToken = (char *)0x0;
          var_18 = (type_9 *)(*(type_15 *)(var_8 + 0x7020))(db);
          if (var_18 == (type_9 *)0x0) goto LAB_00062b00;
          var_6 = ((type_12 *)(pExpr_00.iValue + 8))->iValue;
          var_18->db = db;
          var_6 = var_6 + 2;
          var_18->flags = 1;
          var_7 = var_18;
          if (var_6 == 0) {
            pExpr_00.zToken = (char *)0x0;
            var_10 = -1;
          }
          else {
            var_12 = (*(type_15 *)PTR_strlen_000f5488)(var_6);
            var_10 = (var_12 & 0x3fffffff) - 1;
            pExpr_00.iValue = var_10 / 2;
          }
          var_22 = (type_2 *)(*(type_15 *)(var_8 + 0x7d5c))(db,var_6,var_10);
          aVar20.zToken = (char *)0x0;
          var_6 = 0;
          aVar17 = pExpr_00;
          var_15
                    (var_18,(char *)var_22,pExpr_00.iValue,'\0',
                     (type_18 *)(var_8 + 0x67f4));
          var_17 = var_7;
        }
        else if (var_1 == 0xa7) {
          aVar20.iValue = 0x28;
          aVar17.zToken = (char *)0x0;
          var_17 = (type_4 *)(*(type_15 *)(var_8 + 0x7020))(db);
          if (var_17 == (type_9 *)0x0) goto LAB_00062a94;
          var_10 = ((type_12 *)(pExpr_00.iValue + 8))->iValue;
          var_17->db = db;
          var_6 = 0;
          var_17->flags = 4;
          var_19 = *(char *)(var_10 + 4);
          (var_17->u).nZero = 0;
          *(type_8 *)((int)&var_17->u + 4) = (type_8)(var_19 == '\0');
        }
        else {
          var_6 = 0;
          var_17 = (type_9 *)0x0;
        }
      }
    }
    *ppVal = var_17;
  }
LAB_00062a9c:
  if (var_20 == *(type_11 **)puVar4) {
    return var_6;
  }
  pcVar27 = var_31;
  var_23 = var_20;
  var_21 = PTR___stack_chk_fail_000f5540;
  (*(type_15 *)PTR___stack_chk_fail_000f5540)();
  puVar21 = *(type_14 **)(var_21 + 0x92690);
  puStack_74 = puVar4;
  ppsStack_70 = ppVal;
  var_33 = (int *)*puVar21;
  aVar16 = (type_12)var_22;
  aVar18 = aVar17;
  iStack_7c = var_6;
  aStack_78 = pExpr_00;
  aStack_6c = aVar19;
  aStack_68 = aVar23;
  aStack_64 = unaff_s6;
  iStack_60 = unaff_s7;
  pcStack_5c = pcVar27;
  if (var_22 == (type_2 *)0x0) {
    var_6 = 0;
    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;
  }
  else {
    var_6 = 2;
    if (aVar17.zToken == (char *)0x0) goto LAB_00062fb8;
    if ((var_23 != (type_11 *)0x0) && (*(char *)var_22 == -0x67)) {
      aVar18.iValue = 1;
      aStack_88.zToken = (char *)0x0;
      aVar16 = aVar17;
      function_1(var_23->db,(type_2 *)aVar17.zToken,'\x01','A',(type_4 **)&aStack_88.zToken,
                    in_stack_ffffff6c);
      if (aStack_88.zToken != (char *)0x0) {
        aVar16 = (type_12)(int)*(short *)((int)var_22 + 0x20);
        pVVar12 = var_23->pVdbe;
        if (aVar16.iValue < 0x20) {
          aVar18.zToken = (char *)(aVar16.iValue + -1);
          pVVar12->expmask = 1 << (aVar18.iValue & 0x1fU) | pVVar12->expmask;
        }
        else {
          pVVar12->expmask = pVVar12->expmask | 0x80000000;
        }
        var_17 = var_24(var_23->pReprepare,aVar16.iValue,(type_3)aVar18.iValue);
        if (var_17 == (type_4 *)0x0) {
          var_6 = *(int *)(var_21 + 0x92414);
          (*(type_15 *)(var_6 + -0x6be0))(aStack_88.zToken);
          (*(type_15 *)(var_6 + -0x6be0))(0);
        }
        else {
          var_6 = (**(type_15 **)(var_21 + 0x92614))(var_17);
          if (var_6 == 3) {
            (**(type_15 **)(var_21 + 0x924c4))(var_17);
          }
          aVar18.zToken = (char *)0x0;
          aVar16 = aStack_88;
          var_6 = var_25(var_17,aStack_88.iValue,(type_20 *)0x0);
          var_10 = *(int *)(var_21 + 0x92414);
          (*(type_15 *)(var_10 + -0x6be0))(aStack_88.zToken);
          (*(type_15 *)(var_10 + -0x6be0))(var_17);
          if (var_6 == 0) {
            var_6 = 0;
            goto LAB_00062fb8;
          }
        }
      }
    }
    var_26 = *(type_8 *)((int)var_22 + 4);
    var_12 = *(type_8 *)(aVar17.iValue + 4);
    var_27 = var_26 | var_12;
    if ((var_27 & 0x400) != 0) {
      var_6 = 2;
      if ((var_12 & 0x400 & var_26) == 0) goto LAB_00062fb8;
      if (*(int *)((int)var_22 + 8) != *(int *)(aVar17.iValue + 8)) goto LAB_00062fb4;
      goto LAB_00062f88;
    }
    var_1 = var_22->op;
    var_28 = *aVar17.zToken;
    if (var_1 == var_28) {
      if (var_1 == 0x47) goto LAB_00062fb4;
      if (((var_1 & 0xfd) == 0xa4) ||
         (var_29 = *(type_6 **)((int)var_22 + 8), var_29 == (type_6 *)0x0)) goto LAB_0006305c;
      if ((var_1 == 0xa9) || (var_1 == 0xa5)) {
        aVar16 = (type_12)
                 ((type_12 *)(aVar17.iValue + 8))->zToken;
        aVar18.zToken = (char *)(*(int *)(var_21 + 0x923fc) + 0x25ac);
        do {
          var_30 = (type_8)*var_29;
          if (var_30 == (type_6)*aVar16.zToken) {
            if (var_30 == 0) goto code_r0x000632f4;
          }
          else {
            var_6 = 2;
            if (aVar18.zToken[var_30] != aVar18.zToken[(type_6)*aVar16.zToken]) goto LAB_00062fb8;
          }
          var_29 = var_29 + 1;
          aVar16.zToken = (char *)(aVar16.iValue + 1);
        } while( true );
      }
      if (var_1 == 0x77) goto LAB_00062f88;
      aVar16 = (type_12)
               ((type_12 *)(aVar17.iValue + 8))->zToken;
      if (var_1 == 0x6f) {
        var_6 = (**(type_15 **)(var_21 + 0x9254c))();
        if (var_6 == 0) {
          var_26 = *(type_8 *)((int)var_22 + 4);
          var_12 = *(type_8 *)(aVar17.iValue + 4);
          goto LAB_0006305c;
        }
      }
      else if (((type_6 *)aVar16.zToken == (type_6 *)0x0) ||
              (var_6 = (**(type_15 **)(var_21 + 0x926e0))(), var_6 == 0)) {
LAB_0006305c:
        if (((var_12 ^ var_26) & 0x202) == 0) {
          var_6 = 0;
          if ((var_27 & 0x4000) != 0) goto LAB_00062fb8;
          if ((var_27 & 0x800) == 0) {
            if ((var_27 & 8) == 0) {
              aVar18 = (type_12)
                       ((type_12 *)(aVar17.iValue + 0xc))->iValue;
              aVar16 = (type_12)
                       ((type_12 *)((int)var_22 + 0xc))->zToken;
              var_6 = var_31(var_23,(type_2 *)aVar16.zToken,(type_2 *)aVar18.zToken,
                                         aVar20.iValue);
              if (var_6 != 0) goto LAB_00062fb4;
              aVar18 = (type_12)
                       ((type_12 *)(aVar17.iValue + 0x10))->zToken;
            }
            else {
              aVar18 = (type_12)
                       ((type_12 *)(aVar17.iValue + 0x10))->zToken;
            }
            aVar16 = (type_12)
                     ((type_12 *)((int)var_22 + 0x10))->zToken;
            var_6 = var_31(var_23,(type_2 *)aVar16.zToken,aVar18.iValue,aVar20.iValue);
            if (var_6 == 0) {
              aVar16 = (type_12)
                       ((type_12 *)(aVar17.iValue + 0x14))->zToken;
              aVar18 = aVar20;
              var_6 = var_32
                                (*(type_21 **)((int)var_22 + 0x14),(type_21 *)aVar16.zToken,
                                 aVar20.iValue);
              if (var_6 == 0) {
                var_19 = *(char *)var_22;
                if (((var_19 == 's') || (var_19 == -0x59)) || ((var_27 & 0x2000) != 0)) {
LAB_00062f88:
                  var_6 = 0;
                  goto LAB_00062fb8;
                }
                if ((*(short *)((int)var_22 + 0x20) == *(short *)(aVar17.iValue + 0x20)) &&
                   ((*(char *)((int)var_22 + 2) == *(char *)(aVar17.iValue + 2) || (var_19 != -0x54)))
                   ) {
                  var_6 = 0;
                  if (var_19 == '1') goto LAB_00062fb8;
                  if (*(type_6 **)((int)var_22 + 0x1c) == *(type_6 **)(aVar17.iValue + 0x1c))
                  goto LAB_00062f88;
                  var_6 = 0;
                  if ((type_6 *)aVar20.zToken == *(type_6 **)((int)var_22 + 0x1c)) goto LAB_00062fb8;
                }
              }
            }
          }
        }
      }
      goto LAB_00062fb4;
    }
    if (var_1 == 0x6f) {
      aVar16 = (type_12)
               ((type_12 *)((int)var_22 + 0xc))->zToken;
      aVar18 = aVar17;
      var_6 = var_31(var_23,(type_2 *)aVar16.zToken,aVar17.iValue,aVar20.iValue);
      if (1 < var_6) {
        var_28 = *aVar17.zToken;
        goto LAB_00062fa8;
      }
LAB_0006323c:
      var_6 = 1;
      goto LAB_00062fb8;
    }
LAB_00062fa8:
    if (var_28 == 0x6f) {
      aVar18 = (type_12)
               ((type_12 *)(aVar17.iValue + 0xc))->iValue;
      var_6 = var_31(var_23,var_22,(type_2 *)aVar18.zToken,aVar20.iValue);
      aVar16 = (type_12)var_22;
      if (var_6 < 2) goto LAB_0006323c;
    }
  }
LAB_00062fb4:
  var_6 = 2;
LAB_00062fb8:
  if (var_33 == (int *)*puVar21) {
    return var_6;
  }
  var_34 = var_33;
  (**(type_15 **)(var_21 + 0x92668))();
  if (var_34 == (int *)0x0) {
    return (type_8)((type_6 *)aVar16.zToken != (type_6 *)0x0);
  }
                    /* WARNING: Load size is inaccurate */
  if (((type_6 *)aVar16.zToken == (type_6 *)0x0) || (*var_34 != *aVar16.iValue)) {
    return 1;
  }
  if (*var_34 < 1) {
    return 0;
  }
  pA = (type_2 *)var_34[1];
  pB = *(type_2 **)(aVar16.iValue + 4);
  if (*(type_6 *)(var_34 + 3) == *(type_6 *)(aVar16.iValue + 0xc)) {
    var_6 = 0;
    var_29 = (type_6 *)(aVar16.iValue + 0x14);
    var_35 = var_34 + 5;
    do {
      var_10 = var_31((type_11 *)0x0,pA,pB,aVar18.iValue);
      var_6 = var_6 + 1;
      if (var_10 != 0) {
        return var_10;
      }
      if (*var_34 <= var_6) {
        return 0;
      }
      pbVar1 = (type_6 *)(var_35 + 2);
      pbVar2 = var_29 + 8;
      pA = (type_2 *)*var_35;
      pB = *(type_2 **)var_29;
      var_29 = var_29 + 0x10;
      var_35 = var_35 + 4;
    } while (*pbVar1 == *pbVar2);
  }
  return 1;
code_r0x000632f4:
  if ((type_8)((var_26 & 0x1000000) != 0) == (var_12 << 7) >> 0x1f) {
    if ((var_26 & 0x1000000) != 0) {
      aVar18 = (type_12)
               ((type_12 *)(aVar17.iValue + 0x2c))->iValue;
      aVar16 = (type_12)
               ((type_12 *)((int)var_22 + 0x2c))->zToken;
      var_6 = var_36(var_23,(type_22 *)aVar16.zToken,(type_22 *)aVar18.zToken,1);
      if (var_6 != 0) goto LAB_00062fb4;
      var_26 = *(type_8 *)((int)var_22 + 4);
      var_12 = *(type_8 *)(aVar17.iValue + 4);
    }
    goto LAB_0006305c;
  }
  goto LAB_00062fb4;
}


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

uint MASKED(uint param_1,byte *param_2,byte *param_3,byte *param_4,uint **param_5)

{
  undefined *puVar1;
  uint uVar2;
  int iVar3;
  uint *puVar4;
  uint uVar5;
  byte bVar6;
  undefined4 *puVar7;
  int *piVar8;
  byte *pbVar9;
  byte *pbVar10;
  byte *pbVar11;
  undefined4 uVar12;
  byte *pbVar13;
  byte bVar14;
  byte *pbVar15;
  undefined4 *puVar16;
  int *piVar17;
  uint uVar18;
  char cVar20;
  int iVar19;
  byte *pbVar21;
  byte *unaff_s6;
  uint uVar22;
  int iVar23;
  int unaff_s7;
  uint uVar24;
  undefined *puVar25;
  code *pcVar26;
  byte *pbStack_88;
  int *piStack_84;
  uint uStack_7c;
  byte *pbStack_78;
  undefined *puStack_74;
  uint **ppuStack_70;
  byte *pbStack_6c;
  byte *pbStack_68;
  byte *pbStack_64;
  int iStack_60;
  code *pcStack_5c;
  uint **local_48;
  uint *local_30;
  undefined4 *local_2c;
  
  puVar1 = PTR___stack_chk_guard_000f5568;
  local_30 = (uint *)0x0;
  local_2c = *(undefined4 **)PTR___stack_chk_guard_000f5568;
  for (pbVar15 = param_2; (bVar14 = *pbVar15, bVar14 == 0xab || (bVar14 == 0xb2));
      pbVar15 = *(byte **)(pbVar15 + 0xc)) {
  }
  if (bVar14 == 0xad) {
    bVar14 = pbVar15[2];
  }
  cVar20 = (char)param_4;
  if (bVar14 == 0x24) {
    uVar2 = (*(code *)(PTR_LAB_000f52c8 + 0x4c38))(*(undefined4 *)(pbVar15 + 8),0);
    pbVar21 = (byte *)(uVar2 & 0xff);
    param_2 = *(byte **)(pbVar15 + 0xc);
    local_48 = param_5;
    pbVar13 = pbVar21;
    uVar2 = MASKED(param_1);
    pbVar10 = param_3;
    if (*param_5 != (uint *)0x0) {
      FUN_0005095c(*param_5,pbVar21,1);
      pbVar10 = (byte *)0x1;
      param_2 = (byte *)(int)cVar20;
      FUN_000519d4(*param_5);
    }
  }
  else {
    pbVar10 = param_3;
    pbVar13 = param_4;
    pbVar21 = param_3;
    if (bVar14 == 0xaa) {
      pbVar15 = *(byte **)(pbVar15 + 0xc);
      bVar14 = *pbVar15;
      if ((bVar14 == 0x98) || (unaff_s6 = PTR_LAB_000f52cc, bVar14 == 0x96)) {
        unaff_s7 = -1;
        unaff_s6 = PTR_LAB_000f52cc + 0x74bc;
        goto LAB_000629b8;
      }
LAB_00062b54:
      local_48 = &local_30;
      param_2 = pbVar15;
      iVar3 = MASKED(param_1);
      puVar4 = local_30;
      if (iVar3 == 0) {
        uVar2 = 0;
        if (local_30 != (uint *)0x0) {
          (*(code *)(PTR_LAB_000f52ec + -0x4950))();
          if ((*(ushort *)(local_30 + 2) & 8) == 0) {
            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {
              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e40 | 8;
              *(longlong *)local_30 = *(longlong *)(PTR_DAT_000f52d4 + 0x26d0);
            }
            else {
              uVar18 = -local_30[1];
              local_30[1] = uVar18;
              *local_30 = -(uint)(uVar18 != 0) - *local_30;
            }
          }
          else {
            *local_30 = *local_30 ^ 0x80000000;
          }
          param_2 = (byte *)(int)cVar20;
          pbVar10 = param_3;
          FUN_000519d4();
          puVar4 = local_30;
        }
      }
      else {
LAB_00062a94:
        uVar2 = 0;
      }
    }
    else {
      unaff_s7 = 1;
      unaff_s6 = PTR_DAT_000f52d4 + -0x543c;
LAB_000629b8:
      if (((bVar14 == 0x73) || (bVar14 == 0x96)) || (bVar14 == 0x98)) {
        pbVar13 = (byte *)0x28;
        pbVar10 = (byte *)0x0;
        local_30 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);
        if (local_30 == (uint *)0x0) goto LAB_00062b00;
        uVar2 = *(uint *)(pbVar15 + 4);
        local_30[8] = param_1;
        *(undefined2 *)(local_30 + 2) = 1;
        if ((uVar2 & 0x400) == 0) {
          pbVar13 = *(byte **)(pbVar15 + 8);
          param_2 = PTR_DAT_000f52d4 + -0x7ff4;
          pbVar10 = unaff_s6;
          iVar3 = FUN_0004d30c(param_1);
          if (iVar3 == 0) goto LAB_00062b04;
          if (local_30 != (uint *)0x0) {
            pbVar13 = (byte *)0x1;
            local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);
            FUN_0005b00c(local_30,iVar3,0xffffffff);
          }
        }
        else {
          iVar3 = *(int *)(pbVar15 + 8);
          *(undefined2 *)(local_30 + 2) = 4;
          *(longlong *)local_30 = (longlong)iVar3 * (longlong)unaff_s7;
        }
        if (((bVar14 == 0x98) || (bVar14 == 0x96)) && (param_4 == (byte *)0x41)) {
          pbVar10 = (byte *)0x1;
          param_2 = (byte *)0x43;
          FUN_000519d4(local_30);
        }
        else {
          pbVar10 = (byte *)0x1;
          param_2 = (byte *)(int)cVar20;
          FUN_000519d4(local_30);
        }
        if ((*(ushort *)(local_30 + 2) & 0x2c) != 0) {
          *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;
        }
        uVar2 = 0;
        puVar4 = local_30;
        if (param_3 != (byte *)0x1) {
          if ((local_30[2] & 0x20000) == 0) goto LAB_00062a94;
          param_2 = param_3;
          uVar2 = (*(code *)(PTR_LAB_000f52e8 + -0x4b48))();
          puVar4 = local_30;
        }
      }
      else {
        if (bVar14 == 0xaa) {
          pbVar15 = *(byte **)(pbVar15 + 0xc);
          goto LAB_00062b54;
        }
        if (bVar14 == 0x77) {
          pbVar13 = (byte *)0x28;
          pbVar10 = (byte *)0x0;
          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);
          if (puVar4 == (uint *)0x0) {
LAB_00062b00:
            local_30 = (uint *)0x0;
LAB_00062b04:
            if ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0) {
              (*(code *)(PTR_LAB_000f52ec + 0x67b4))(param_1);
            }
            uVar2 = 7;
            (*(code *)(PTR_LAB_000f52ec + -0x6be0))(local_30);
            goto LAB_00062a9c;
          }
          puVar4[8] = param_1;
          uVar2 = 0;
          *(undefined2 *)(puVar4 + 2) = 1;
        }
        else if (bVar14 == 0x97) {
          pbVar13 = (byte *)0x28;
          pbVar10 = (byte *)0x0;
          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);
          if (puVar4 == (uint *)0x0) goto LAB_00062b00;
          iVar3 = *(int *)(pbVar15 + 8);
          puVar4[8] = param_1;
          iVar3 = iVar3 + 2;
          *(undefined2 *)(puVar4 + 2) = 1;
          local_30 = puVar4;
          if (iVar3 == 0) {
            pbVar15 = (byte *)0x0;
            iVar19 = -1;
          }
          else {
            uVar2 = (*(code *)PTR_strlen_000f5488)(iVar3);
            iVar19 = (uVar2 & 0x3fffffff) - 1;
            pbVar15 = (byte *)(iVar19 / 2);
          }
          param_2 = (byte *)(*(code *)(PTR_LAB_000f52ec + 0x7d5c))(param_1,iVar3,iVar19);
          pbVar13 = (byte *)0x0;
          uVar2 = 0;
          local_48 = (uint **)(PTR_LAB_000f52ec + 0x67f4);
          pbVar10 = pbVar15;
          FUN_0005b00c(puVar4);
          puVar4 = local_30;
        }
        else if (bVar14 == 0xa7) {
          pbVar13 = (byte *)0x28;
          pbVar10 = (byte *)0x0;
          puVar4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x7020))(param_1);
          if (puVar4 == (uint *)0x0) goto LAB_00062a94;
          iVar3 = *(int *)(pbVar15 + 8);
          puVar4[8] = param_1;
          uVar2 = 0;
          *(undefined2 *)(puVar4 + 2) = 4;
          cVar20 = *(char *)(iVar3 + 4);
          *puVar4 = 0;
          puVar4[1] = (uint)(cVar20 == '\0');
        }
        else {
          uVar2 = 0;
          puVar4 = (uint *)0x0;
        }
      }
    }
    *param_5 = puVar4;
  }
LAB_00062a9c:
  if (local_2c == *(undefined4 **)puVar1) {
    return uVar2;
  }
  pcVar26 = FUN_00062ed8;
  puVar7 = local_2c;
  puVar25 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  puVar16 = *(undefined4 **)(puVar25 + 0x92690);
  puStack_74 = puVar1;
  ppuStack_70 = param_5;
  piStack_84 = (int *)*puVar16;
  pbVar9 = param_2;
  pbVar11 = pbVar10;
  uStack_7c = uVar2;
  pbStack_78 = pbVar15;
  pbStack_6c = param_4;
  pbStack_68 = pbVar21;
  pbStack_64 = unaff_s6;
  iStack_60 = unaff_s7;
  pcStack_5c = pcVar26;
  if (param_2 == (byte *)0x0) {
    uVar2 = 0;
    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;
  }
  else {
    uVar2 = 2;
    if (pbVar10 == (byte *)0x0) goto LAB_00062fb8;
    if ((puVar7 != (undefined4 *)0x0) && (*param_2 == 0x99)) {
      pbVar11 = (byte *)0x1;
      pbStack_88 = (byte *)0x0;
      pbVar9 = pbVar10;
      MASKED(*puVar7,pbVar10,1,0x41,&pbStack_88);
      if (pbStack_88 != (byte *)0x0) {
        pbVar9 = (byte *)(int)*(short *)(param_2 + 0x20);
        iVar3 = puVar7[2];
        if ((int)pbVar9 < 0x20) {
          pbVar11 = pbVar9 + -1;
          *(uint *)(iVar3 + 0xd0) = 1 << ((uint)pbVar11 & 0x1f) | *(uint *)(iVar3 + 0xd0);
        }
        else {
          *(uint *)(iVar3 + 0xd0) = *(uint *)(iVar3 + 0xd0) | 0x80000000;
        }
        iVar3 = FUN_00051a50(puVar7[0x38]);
        if (iVar3 == 0) {
          iVar3 = *(int *)(puVar25 + 0x92414);
          (*(code *)(iVar3 + -0x6be0))(pbStack_88);
          (*(code *)(iVar3 + -0x6be0))(0);
        }
        else {
          iVar19 = (**(code **)(puVar25 + 0x92614))(iVar3);
          if (iVar19 == 3) {
            (**(code **)(puVar25 + 0x924c4))(iVar3);
          }
          pbVar11 = (byte *)0x0;
          pbVar9 = pbStack_88;
          iVar19 = FUN_0004f704(iVar3,pbStack_88,0);
          iVar23 = *(int *)(puVar25 + 0x92414);
          (*(code *)(iVar23 + -0x6be0))(pbStack_88);
          (*(code *)(iVar23 + -0x6be0))(iVar3);
          if (iVar19 == 0) {
            uVar2 = 0;
            goto LAB_00062fb8;
          }
        }
      }
    }
    uVar24 = *(uint *)(param_2 + 4);
    uVar18 = *(uint *)(pbVar10 + 4);
    uVar22 = uVar24 | uVar18;
    if ((uVar22 & 0x400) != 0) {
      uVar2 = 2;
      if ((uVar18 & 0x400 & uVar24) == 0) goto LAB_00062fb8;
      if (*(int *)(param_2 + 8) != *(int *)(pbVar10 + 8)) goto LAB_00062fb4;
      goto LAB_00062f88;
    }
    bVar14 = *param_2;
    bVar6 = *pbVar10;
    if (bVar14 == bVar6) {
      if (bVar14 == 0x47) goto LAB_00062fb4;
      if (((bVar14 & 0xfd) == 0xa4) || (pbVar15 = *(byte **)(param_2 + 8), pbVar15 == (byte *)0x0))
      goto LAB_0006305c;
      if ((bVar14 == 0xa9) || (bVar14 == 0xa5)) {
        pbVar9 = *(byte **)(pbVar10 + 8);
        pbVar11 = (byte *)(*(int *)(puVar25 + 0x923fc) + 0x25ac);
        do {
          uVar5 = (uint)*pbVar15;
          if (uVar5 == *pbVar9) {
            if (uVar5 == 0) goto code_r0x000632f4;
          }
          else {
            uVar2 = 2;
            if (pbVar11[uVar5] != pbVar11[*pbVar9]) goto LAB_00062fb8;
          }
          pbVar15 = pbVar15 + 1;
          pbVar9 = pbVar9 + 1;
        } while( true );
      }
      if (bVar14 == 0x77) goto LAB_00062f88;
      pbVar9 = *(byte **)(pbVar10 + 8);
      if (bVar14 == 0x6f) {
        iVar3 = (**(code **)(puVar25 + 0x9254c))();
        if (iVar3 == 0) {
          uVar24 = *(uint *)(param_2 + 4);
          uVar18 = *(uint *)(pbVar10 + 4);
          goto LAB_0006305c;
        }
      }
      else if ((pbVar9 == (byte *)0x0) || (iVar3 = (**(code **)(puVar25 + 0x926e0))(), iVar3 == 0))
      {
LAB_0006305c:
        if (((uVar18 ^ uVar24) & 0x202) == 0) {
          uVar2 = 0;
          if ((uVar22 & 0x4000) != 0) goto LAB_00062fb8;
          if ((uVar22 & 0x800) == 0) {
            if ((uVar22 & 8) == 0) {
              pbVar11 = *(byte **)(pbVar10 + 0xc);
              pbVar9 = *(byte **)(param_2 + 0xc);
              iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);
              if (iVar3 != 0) goto LAB_00062fb4;
              pbVar11 = *(byte **)(pbVar10 + 0x10);
            }
            else {
              pbVar11 = *(byte **)(pbVar10 + 0x10);
            }
            pbVar9 = *(byte **)(param_2 + 0x10);
            iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar11,pbVar13);
            if (iVar3 == 0) {
              pbVar9 = *(byte **)(pbVar10 + 0x14);
              pbVar11 = pbVar13;
              iVar3 = FUN_000633ac(*(undefined4 *)(param_2 + 0x14),pbVar9,pbVar13);
              if (iVar3 == 0) {
                bVar14 = *param_2;
                if (((bVar14 == 0x73) || (bVar14 == 0xa7)) || ((uVar22 & 0x2000) != 0)) {
LAB_00062f88:
                  uVar2 = 0;
                  goto LAB_00062fb8;
                }
                if ((*(short *)(param_2 + 0x20) == *(short *)(pbVar10 + 0x20)) &&
                   ((param_2[2] == pbVar10[2] || (bVar14 != 0xac)))) {
                  uVar2 = 0;
                  if (bVar14 == 0x31) goto LAB_00062fb8;
                  if (*(byte **)(param_2 + 0x1c) == *(byte **)(pbVar10 + 0x1c)) goto LAB_00062f88;
                  uVar2 = 0;
                  if (pbVar13 == *(byte **)(param_2 + 0x1c)) goto LAB_00062fb8;
                }
              }
            }
          }
        }
      }
      goto LAB_00062fb4;
    }
    if (bVar14 == 0x6f) {
      pbVar9 = *(byte **)(param_2 + 0xc);
      pbVar11 = pbVar10;
      iVar3 = FUN_00062ed8(puVar7,pbVar9,pbVar10,pbVar13);
      if (1 < iVar3) {
        bVar6 = *pbVar10;
        goto LAB_00062fa8;
      }
LAB_0006323c:
      uVar2 = 1;
      goto LAB_00062fb8;
    }
LAB_00062fa8:
    if (bVar6 == 0x6f) {
      pbVar11 = *(byte **)(pbVar10 + 0xc);
      iVar3 = FUN_00062ed8(puVar7,param_2,pbVar11,pbVar13);
      pbVar9 = param_2;
      if (iVar3 < 2) goto LAB_0006323c;
    }
  }
LAB_00062fb4:
  uVar2 = 2;
LAB_00062fb8:
  if (piStack_84 == (int *)*puVar16) {
    return uVar2;
  }
  pcVar26 = *(code **)(puVar25 + 0x92668);
  piVar8 = piStack_84;
  (*pcVar26)();
  pcVar26 = pcVar26 + 0x99ef4;
  if (piVar8 == (int *)0x0) {
    return (uint)(pbVar9 != (byte *)0x0);
  }
  if ((pbVar9 == (byte *)0x0) || (*piVar8 != *(int *)pbVar9)) {
    return 1;
  }
  if (*piVar8 < 1) {
    return 0;
  }
  iVar3 = piVar8[1];
  uVar12 = *(undefined4 *)(pbVar9 + 4);
  if (*(byte *)(piVar8 + 3) == pbVar9[0xc]) {
    iVar19 = 0;
    pbVar15 = pbVar9 + 0x14;
    piVar17 = piVar8 + 5;
    do {
      uVar2 = FUN_00062ed8(0,iVar3,uVar12,pbVar11,pcVar26);
      iVar19 = iVar19 + 1;
      if (uVar2 != 0) {
        return uVar2;
      }
      if (*piVar8 <= iVar19) {
        return 0;
      }
      pbVar10 = (byte *)(piVar17 + 2);
      pbVar13 = pbVar15 + 8;
      iVar3 = *piVar17;
      uVar12 = *(undefined4 *)pbVar15;
      pbVar15 = pbVar15 + 0x10;
      piVar17 = piVar17 + 4;
    } while (*pbVar10 == *pbVar13);
  }
  return 1;
code_r0x000632f4:
  if ((uint)((uVar24 & 0x1000000) != 0) == (uVar18 << 7) >> 0x1f) {
    if ((uVar24 & 0x1000000) != 0) {
      pbVar11 = *(byte **)(pbVar10 + 0x2c);
      pbVar9 = *(byte **)(param_2 + 0x2c);
      iVar3 = FUN_000634f0(puVar7,pbVar9,pbVar11,1);
      if (iVar3 != 0) goto LAB_00062fb4;
      uVar24 = *(uint *)(param_2 + 4);
      uVar18 = *(uint *)(pbVar10 + 4);
    }
    goto LAB_0006305c;
  }
  goto LAB_00062fb4;
}

